// $ANTLR 3.4 F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g 2011-11-26 19:33:10

package com.polytech.diploma.OracleSQL;


import org.antlr.runtime.*;
import org.antlr.runtime.tree.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class PLSQLWalker extends TreeParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "AMPERSAND", "APPROXIMATE_NUM_LIT", "ASSIGN_OP", "ASTERISK", "AT_SIGN", "BIT_STRING_LIT", "CHAR_STRING", "COLON", "COMMA", "COMMENT", "CONCATENATION_OP", "DELIMITED_ID", "DOUBLE_ASTERISK", "DOUBLE_PERIOD", "EQUALS_OP", "EXACT_NUM_LIT", "FOR_NOTATION", "GREATER_THAN_OP", "GREATER_THAN_OR_EQUALS_OP", "HEX_STRING_LIT", "INTRODUCER", "LEFT_BRACKET", "LEFT_PAREN", "LESS_THAN_OP", "LESS_THAN_OR_EQUALS_OP", "MINUS_SIGN", "NATIONAL_CHAR_STRING_LIT", "NEWLINE", "NOT_EQUAL_OP", "PERCENT", "PERIOD", "PLSQL_NON_RESERVED_ELSIF", "PLSQL_NON_RESERVED_MODEL", "PLSQL_NON_RESERVED_USING", "PLSQL_RESERVED_CLUSTERS", "PLSQL_RESERVED_COLAUTH", "PLSQL_RESERVED_COLUMNS", "PLSQL_RESERVED_COMPRESS", "PLSQL_RESERVED_CRASH", "PLSQL_RESERVED_EXCLUSIVE", "PLSQL_RESERVED_IDENTIFIED", "PLSQL_RESERVED_IF", "PLSQL_RESERVED_INDEX", "PLSQL_RESERVED_INDEXES", "PLSQL_RESERVED_LOCK", "PLSQL_RESERVED_MINUS", "PLSQL_RESERVED_MODE", "PLSQL_RESERVED_NOCOMPRESS", "PLSQL_RESERVED_NOWAIT", "PLSQL_RESERVED_RESOURCE", "PLSQL_RESERVED_SHARE", "PLSQL_RESERVED_START", "PLSQL_RESERVED_TABAUTH", "PLSQL_RESERVED_VIEWS", "PLUS_SIGN", "QUESTION_MARK", "REGULAR_ID", "RIGHT_BRACKET", "RIGHT_PAREN", "SEMICOLON", "SEPARATOR", "SIMPLE_LETTER", "SOLIDUS", "SPACE", "SQL92_RESERVED_ALL", "SQL92_RESERVED_ALTER", "SQL92_RESERVED_AND", "SQL92_RESERVED_ANY", "SQL92_RESERVED_AS", "SQL92_RESERVED_ASC", "SQL92_RESERVED_AT", "SQL92_RESERVED_BEGIN", "SQL92_RESERVED_BETWEEN", "SQL92_RESERVED_BY", "SQL92_RESERVED_CASE", "SQL92_RESERVED_CHECK", "SQL92_RESERVED_CONNECT", "SQL92_RESERVED_CREATE", "SQL92_RESERVED_CURRENT", "SQL92_RESERVED_DECLARE", "SQL92_RESERVED_DEFAULT", "SQL92_RESERVED_DELETE", "SQL92_RESERVED_DESC", "SQL92_RESERVED_DISTINCT", "SQL92_RESERVED_DROP", "SQL92_RESERVED_ELSE", "SQL92_RESERVED_END", "SQL92_RESERVED_EXCEPTION", "SQL92_RESERVED_EXISTS", "SQL92_RESERVED_FALSE", "SQL92_RESERVED_FETCH", "SQL92_RESERVED_FOR", "SQL92_RESERVED_FROM", "SQL92_RESERVED_GOTO", "SQL92_RESERVED_GRANT", "SQL92_RESERVED_GROUP", "SQL92_RESERVED_HAVING", "SQL92_RESERVED_IN", "SQL92_RESERVED_INSERT", "SQL92_RESERVED_INTERSECT", "SQL92_RESERVED_INTO", "SQL92_RESERVED_IS", "SQL92_RESERVED_LIKE", "SQL92_RESERVED_NOT", "SQL92_RESERVED_NULL", "SQL92_RESERVED_OF", "SQL92_RESERVED_ON", "SQL92_RESERVED_OPTION", "SQL92_RESERVED_OR", "SQL92_RESERVED_ORDER", "SQL92_RESERVED_OVERLAPS", "SQL92_RESERVED_PRIOR", "SQL92_RESERVED_PROCEDURE", "SQL92_RESERVED_PUBLIC", "SQL92_RESERVED_REVOKE", "SQL92_RESERVED_SELECT", "SQL92_RESERVED_SIZE", "SQL92_RESERVED_SQL", "SQL92_RESERVED_TABLE", "SQL92_RESERVED_THEN", "SQL92_RESERVED_TO", "SQL92_RESERVED_TRUE", "SQL92_RESERVED_UNION", "SQL92_RESERVED_UNIQUE", "SQL92_RESERVED_UPDATE", "SQL92_RESERVED_VALUES", "SQL92_RESERVED_VIEW", "SQL92_RESERVED_WHEN", "SQL92_RESERVED_WHERE", "SQL92_RESERVED_WITH", "UNDERSCORE", "UNSIGNED_INTEGER", "VERTICAL_BAR", "ADD_VK", "AFTER_VK", "AGENT_VK", "AGGREGATE_VK", "ALIAS", "ANALYZE_VK", "ANY_ELEMENT", "ANY_MODE", "ARGUMENT", "ARGUMENTS", "ASSIGN", "ASSOCIATE_VK", "ATTRIBUTE_NAME", "AT_VK", "AUDIT_VK", "AUTHID_VK", "AUTOMATIC_VK", "AUTONOMOUS_TRANSACTION_VK", "AUTO_VK", "BATCH_VK", "BEFORE_VK", "BFILE_VK", "BINARY_DOUBLE_VK", "BINARY_FLOAT_VK", "BINARY_INTEGER_VK", "BIT_VK", "BLOB_VK", "BLOCK_VK", "BODY_VK", "BOOLEAN_VK", "BOTH_VK", "BULK_VK", "BYTE_VK", "CACHE_VK", "CALL_VK", "CANONICAL_VK", "CASCADE_VK", "CASCATED_ELEMENT", "CAST_VK", "CHARACTER_VK", "CHAR_CS_VK", "CHAR_SET_NAME", "CHAR_VK", "CHR_VK", "CLOB_VK", "CLOSE_VK", "CLUSTER_VK", "COLLECTION_MODE", "COLLECTION_NAME", "COLLECT_VK", "COLUMNS", "COLUMN_NAME", "COMMENT_VK", "COMMITTED_VK", "COMMIT_VK", "COMPATIBILITY_VK", "COMPILE_VK", "COMPOUND_VK", "CONDITIONAL_INSERT", "CONSTANT_VK", "CONSTRAINT_NAME", "CONSTRUCTOR_VK", "CONTENT_VK", "CONTEXT_VK", "CONTINUE_VK", "CONVERT_VK", "CORRUPT_XID_ALL_VK", "CORRUPT_XID_VK", "COST_CLASS_NAME", "COST_VK", "COUNT_VK", "CROSS_VK", "CUBE_VK", "CURRENT_USER_VK", "CURRENT_VK", "CURSOR_NAME", "CUSTOMDATUM_VK", "CUSTOM_TYPE", "CYCLE_VK", "C_VK", "DATABASE_VK", "DATETIME_OP", "DATE_VK", "DAY_VK", "DBTIMEZONE_VK", "DB_ROLE_CHANGE_VK", "DDL_VK", "DEBUG_VK", "DECIMAL_VK", "DECOMPOSE_VK", "DECREMENT_VK", "DEC_VK", "DEFAULTS_VK", "DEFERRED_VK", "DEFINER_VK", "DENSE_RANK_VK", "DETERMINISTIC_VK", "DIMENSION_VK", "DIRECT_MODE", "DISABLE_VK", "DISASSOCIATE_VK", "DML_STATEMENT", "DOCUMENT_VK", "DOT_ASTERISK", "DOUBLE_VK", "DSINTERVAL_UNCONSTRAINED_VK", "ELEMENT", "ELEMENTS_MODE", "ENABLE_VK", "ENCODING_VK", "ENTITYESCAPING_VK", "EVALNAME_VK", "EXCEPTIONS_VK", "EXCEPTION_INIT_VK", "EXCEPTION_NAME", "EXCLUDE_VK", "EXECUTE_VK", "EXIT_VK", "EXPR", "EXPR_LIST", "EXTERNAL_VK", "EXTRACT_VK", "FACTORING", "FINAL_VK", "FIRST_VALUE_VK", "FIRST_VK", "FLOAT_VK", "FOLLOWING_VK", "FOLLOWS_VK", "FORALL_VK", "FORCE_VK", "FOR_MULTI_COLUMN", "FOR_SINGLE_COLUMN", "FULL_VK", "FUNCTION_ENABLING_OVER", "FUNCTION_ENABLING_USING", "FUNCTION_ENABLING_WITHIN_OR_OVER", "FUNCTION_NAME", "GROUPING_VK", "GROUPIN_SET", "GROUP_BY_ELEMENT", "HASH_VK", "HIDE_VK", "HIERARCHICAL", "HOSTED_VARIABLE", "HOSTED_VARIABLE_NAME", "HOSTED_VARIABLE_ROUTINE_CALL", "HOUR_VK", "ID", "IGNORE_VK", "IMMEDIATE_VK", "IMPLEMENTATION_TYPE_NAME", "INCLUDE_VK", "INCLUDING_VK", "INCREMENT_VK", "INDENT_VK", "INDEX_NAME", "INLINE_VK", "INNER_VK", "INOUT_VK", "INSERT_STATEMENT", "INSTANTIABLE_VK", "INSTEAD_VK", "INTEGER_VK", "INTERVAL_DATATYPE", "INT_VK", "INVALIDATE_VK", "ISOLATION_VK", "IS_A_SET", "IS_EMPTY", "IS_INFINITE", "IS_NAN", "IS_NOT_A_SET", "IS_NOT_EMPTY", "IS_NOT_INFINITE", "IS_NOT_NAN", "IS_NOT_NULL", "IS_NOT_OF_TYPE", "IS_NOT_PRESENT", "IS_NULL", "IS_OF_TYPE", "IS_PRESENT", "ITERATE_VK", "JAVA_VK", "JOIN_DEF", "KEEP_VK", "LABEL_NAME", "LANGUAGE_VK", "LAST_VALUE_VK", "LAST_VK", "LEADING_VK", "LEFT_VK", "LIBRARY_VK", "LIKE2_VK", "LIKE4_VK", "LIKEC_VK", "LIMIT_VK", "LINK_NAME", "LOCAL_VK", "LOCK_TABLE_ELEMENT", "LOGIC_EXPR", "LOGOFF_VK", "LOGON_VK", "LOG_VK", "LONG_VK", "LOOP_VK", "MAIN_MODEL", "MAIN_MODEL_NAME", "MAP_VK", "MAXVALUE_VK", "MEASURES_VK", "MEMBER_VK", "MERGE_INSERT", "MERGE_UPDATE", "MERGE_VK", "MINUTE_VK", "MINVALUE_VK", "MLSLABEL_VK", "MODEL_COLUMN", "MODEL_COLUMNS", "MODEL_EXPRESSION", "MODEL_RULE", "MODEL_RULES", "MODIFY_VK", "MONTH_VK", "MULTI_TABLE_MODE", "NAME_VK", "NATIVE_DATATYPE", "NATURALN_VK", "NATURAL_VK", "NAV_VK", "NCHAR_CS_VK", "NCHAR_VK", "NCLOB_VK", "NESTED_VK", "NEW_VK", "NOAUDIT_VK", "NOCACHE_VK", "NOCOPY_VK", "NOCYCLE_VK", "NOENTITYESCAPING_VK", "NOMAXVALUE_VK", "NOMINVALUE_VK", "NOORDER_VK", "NOSCHEMACHECK_VK", "NOT_BETWEEN", "NOT_IN", "NOT_LIKE", "NO_VK", "NULLS_VK", "NUMBER_VK", "NUMERIC_VK", "NVARCHAR2_VK", "OBJECT_VK", "OFF_VK", "OLD_VK", "ONLY_VK", "OPEN_VK", "ORADATA_VK", "ORDER_BY_ELEMENT", "ORDER_BY_ELEMENTS", "ORDINALITY_VK", "OUT_VK", "OVERRIDING_VK", "OVER_VK", "PACKAGE_NAME", "PACKAGE_VK", "PARALLEL_ENABLE_VK", "PARAMETERS_VK", "PARAMETER_NAME", "PARENT_VK", "PARTITION_VK", "PASSING_VK", "PERCENT_FOUND_VK", "PERCENT_ISOPEN_VK", "PERCENT_NOTFOUND_VK", "PERCENT_ROWCOUNT_VK", "PERCENT_ROWTYPE_VK", "PERCENT_TYPE_VK", "PIPELINED_VK", "PIVOT_ALIAS", "PIVOT_ELEMENT", "PIVOT_IN_ELEMENT", "PIVOT_VK", "PLS_INTEGER_VK", "POSITIVEN_VK", "POSITIVE_VK", "PRAGMA_VK", "PRECEDING_VK", "PRECISION", "PRECISION_VK", "PREDICTION_FUNCTION", "PROCEDURE_NAME", "QUERY_NAME", "RAISE_VK", "RANGE_VK", "RAW_VK", "READ_VK", "REAL_VK", "RECORD_NAME", "REFERENCE_MODEL_NAME", "REFERENCE_VK", "REFERENCING_VK", "REF_VK", "REJECT_VK", "RELIES_ON_VK", "RENAME_VK", "REPLACE_VK", "RESTRICT_REFERENCES_VK", "RESULT_CACHE_VK", "RETURN_VK", "REUSE_VK", "REVERSE_VK", "RIGHT_VK", "ROLLBACK_SEGMENT_NAME", "ROLLBACK_VK", "ROLLUP_VK", "ROUTINE_CALL", "ROUTINE_NAME", "ROWID_VK", "ROWS_VK", "ROW_VK", "RULES_VK", "SAMPLE_VK", "SAVEPOINT_NAME", "SAVEPOINT_VK", "SCHEMACHECK_VK", "SCHEMA_NAME", "SCHEMA_VK", "SCN_VK", "SEARCHED_CASE", "SECOND_VK", "SEED_VK", "SELECTED_TABLEVIEW", "SELECT_ITEM", "SELECT_LIST", "SELECT_MODE", "SELECT_STATEMENT", "SELF_VK", "SEQUENCE_NAME", "SEQUENCE_VK", "SEQUENTIAL_VK", "SERIALIZABLE_VK", "SERIALLY_REUSABLE_VK", "SERVERERROR_VK", "SESSIONTIMEZONE_VK", "SET_VK", "SHOW_VK", "SHUTDOWN_VK", "SIBLINGS_VK", "SIGNTYPE_VK", "SIMPLE_CASE", "SIMPLE_INTEGER_VK", "SINGLE_TABLE_MODE", "SINGLE_VK", "SKIP_VK", "SMALLINT_VK", "SOME_VK", "SPECIFICATION_VK", "SQLDATA_VK", "STANDALONE_VK", "STANDARD_FUNCTION", "STARTUP_VK", "STATIC_RETURNING", "STATIC_VK", "STATISTICS_VK", "STRING_VK", "SUBMULTISET_VK", "SUBPARTITION_VK", "SUBQUERY", "SUSPEND_VK", "TABLEVIEW_NAME", "TABLE_ELEMENT", "TABLE_EXPRESSION", "TABLE_REF", "TABLE_REF_ELEMENT", "TABLE_VAR_NAME", "TIMESTAMP_LTZ_UNCONSTRAINED_VK", "TIMESTAMP_TZ_UNCONSTRAINED_VK", "TIMESTAMP_UNCONSTRAINED_VK", "TIMESTAMP_VK", "TIMEZONE_ABBR_VK", "TIMEZONE_HOUR_VK", "TIMEZONE_MINUTE_VK", "TIMEZONE_REGION_VK", "TIME_VK", "TRAILING_VK", "TRANSLATE_VK", "TREAT_VK", "TRIGGER_NAME", "TRIM_VK", "TRUNCATE_VK", "TYPE_NAME", "TYPE_VK", "UNARY_OPERATOR", "UNBOUNDED_VK", "UNDER_VK", "UNLIMITED_VK", "UNPIVOT_IN_ELEMENT", "UNPIVOT_VK", "UNTIL_VK", "UPDATED_VK", "UPSERT_VK", "UROWID_VK", "VALIDATE_VK", "VALUE_VK", "VARCHAR2_VK", "VARCHAR_VK", "VARIABLE_NAME", "VECTOR_EXPR", "VERSIONS_VK", "VERSION_VK", "WAIT_VK", "WELLFORMED_VK", "WITHIN_VK", "WORK_VK", "WRITE_VK", "XMLAGG_VK", "XMLATTRIBUTES_VK", "XMLCAST_VK", "XMLCOLATTVAL_VK", "XMLELEMENT_VK", "XMLEXISTS_VK", "XMLFOREST_VK", "XMLNAMESPACES_VK", "XMLPARSE_VK", "XMLPI_VK", "XMLQUERY_VK", "XMLROOT_VK", "XMLSERIALIZE_VK", "XMLTABLE_VK", "XML_ALIAS", "XML_COLUMN", "XML_COLUMN_NAME", "XML_ELEMENT", "XML_VK", "YEAR_VK", "YES_VK", "YMINTERVAL_UNCONSTRAINED_VK", "AFTER_EACH_ROW", "AFTER_STATEMENT", "ALTER_ATTRIBUTE", "ALTER_COLLECTION", "ALTER_FUNCTION", "ALTER_METHOD", "ALTER_METHOD_ELEMENT", "ALTER_PACKAGE", "ALTER_PROCEDURE", "ALTER_SEQUENCE", "ALTER_TRIGGER", "ALTER_TYPE", "ATTRIBUTE", "ATTRIBUTES", "BEFORE_EACH_ROW", "BEFORE_STATEMENT", "BLOCK", "BODY", "BODY_MODE", "CALL_MODE", "COMPILATION_UNIT", "COMPILER_PARAMETER", "COMPOUND_DML", "CONSTRUCTOR_SPEC", "CREATE_FUNCTION", "CREATE_PACKAGE_BODY", "CREATE_PACKAGE_SPEC", "CREATE_PROCEDURE", "CREATE_SEQUENCE", "CREATE_TRIGGER", "CREATE_TYPE_BODY", "CREATE_TYPE_SPEC", "CURSOR_BASED_FOR", "CURSOR_DECLARE", "DEFAULT_VALUE", "DEPENDENT_HANDLING", "DML_EVENT", "DML_EVENT_ELEMENT", "DROP_FUNCTION", "DROP_PACKAGE", "DROP_PROCEDURE", "DROP_SEQUENCE", "DROP_TRIGGER", "DROP_TYPE", "DYNAMIC_RETURN", "ELEMENT_SPEC", "EXCEPTION_DECLARE", "FIELDS", "FIELD_SPEC", "FOR_EACH_ROW", "FOR_LOOP", "FUNCTION_SPEC", "INDEXED_BY", "INDEXED_FOR", "INDICES_BOUND", "LABEL_DECLARE", "MODIFIER", "NESTED_TABLE_TYPE_DEF", "NON_DML", "OBJECT_AS", "OBJECT_MEMBERS", "OBJECT_TYPE_DEF", "ORDER_VK", "PARAMETER", "PARAMETERS", "PRAGMA_DECLARE", "PROCEDURE_SPEC", "RECORD_TYPE_DECLARE", "RECORD_VAR_DECLARE", "SELECT_BASED_FOR", "SET_CONSTRAINT", "SET_SERVEROUTPUT", "SET_TRANSACTION", "SIMPLE_BOUND", "SIMPLE_DML", "SQL_SCRIPT", "START_VK", "STATEMENTS", "STREAMING_CLAUSE", "SUBTYPE_DECLARE", "TABLE_TYPE_DECLARE", "TABLE_VAR_DECLARE", "THREE_DOTS", "TYPE_BODY_ELEMENTS", "USING_MODE", "VALUES_BOUND", "VARIABLE_DECLARE", "VARR_ARRAY_DEF", "WHILE_LOOP"
    };

    public static final int EOF=-1;
    public static final int AMPERSAND=4;
    public static final int APPROXIMATE_NUM_LIT=5;
    public static final int ASSIGN_OP=6;
    public static final int ASTERISK=7;
    public static final int AT_SIGN=8;
    public static final int BIT_STRING_LIT=9;
    public static final int CHAR_STRING=10;
    public static final int COLON=11;
    public static final int COMMA=12;
    public static final int COMMENT=13;
    public static final int CONCATENATION_OP=14;
    public static final int DELIMITED_ID=15;
    public static final int DOUBLE_ASTERISK=16;
    public static final int DOUBLE_PERIOD=17;
    public static final int EQUALS_OP=18;
    public static final int EXACT_NUM_LIT=19;
    public static final int FOR_NOTATION=20;
    public static final int GREATER_THAN_OP=21;
    public static final int GREATER_THAN_OR_EQUALS_OP=22;
    public static final int HEX_STRING_LIT=23;
    public static final int INTRODUCER=24;
    public static final int LEFT_BRACKET=25;
    public static final int LEFT_PAREN=26;
    public static final int LESS_THAN_OP=27;
    public static final int LESS_THAN_OR_EQUALS_OP=28;
    public static final int MINUS_SIGN=29;
    public static final int NATIONAL_CHAR_STRING_LIT=30;
    public static final int NEWLINE=31;
    public static final int NOT_EQUAL_OP=32;
    public static final int PERCENT=33;
    public static final int PERIOD=34;
    public static final int PLSQL_NON_RESERVED_ELSIF=35;
    public static final int PLSQL_NON_RESERVED_MODEL=36;
    public static final int PLSQL_NON_RESERVED_USING=37;
    public static final int PLSQL_RESERVED_CLUSTERS=38;
    public static final int PLSQL_RESERVED_COLAUTH=39;
    public static final int PLSQL_RESERVED_COLUMNS=40;
    public static final int PLSQL_RESERVED_COMPRESS=41;
    public static final int PLSQL_RESERVED_CRASH=42;
    public static final int PLSQL_RESERVED_EXCLUSIVE=43;
    public static final int PLSQL_RESERVED_IDENTIFIED=44;
    public static final int PLSQL_RESERVED_IF=45;
    public static final int PLSQL_RESERVED_INDEX=46;
    public static final int PLSQL_RESERVED_INDEXES=47;
    public static final int PLSQL_RESERVED_LOCK=48;
    public static final int PLSQL_RESERVED_MINUS=49;
    public static final int PLSQL_RESERVED_MODE=50;
    public static final int PLSQL_RESERVED_NOCOMPRESS=51;
    public static final int PLSQL_RESERVED_NOWAIT=52;
    public static final int PLSQL_RESERVED_RESOURCE=53;
    public static final int PLSQL_RESERVED_SHARE=54;
    public static final int PLSQL_RESERVED_START=55;
    public static final int PLSQL_RESERVED_TABAUTH=56;
    public static final int PLSQL_RESERVED_VIEWS=57;
    public static final int PLUS_SIGN=58;
    public static final int QUESTION_MARK=59;
    public static final int REGULAR_ID=60;
    public static final int RIGHT_BRACKET=61;
    public static final int RIGHT_PAREN=62;
    public static final int SEMICOLON=63;
    public static final int SEPARATOR=64;
    public static final int SIMPLE_LETTER=65;
    public static final int SOLIDUS=66;
    public static final int SPACE=67;
    public static final int SQL92_RESERVED_ALL=68;
    public static final int SQL92_RESERVED_ALTER=69;
    public static final int SQL92_RESERVED_AND=70;
    public static final int SQL92_RESERVED_ANY=71;
    public static final int SQL92_RESERVED_AS=72;
    public static final int SQL92_RESERVED_ASC=73;
    public static final int SQL92_RESERVED_AT=74;
    public static final int SQL92_RESERVED_BEGIN=75;
    public static final int SQL92_RESERVED_BETWEEN=76;
    public static final int SQL92_RESERVED_BY=77;
    public static final int SQL92_RESERVED_CASE=78;
    public static final int SQL92_RESERVED_CHECK=79;
    public static final int SQL92_RESERVED_CONNECT=80;
    public static final int SQL92_RESERVED_CREATE=81;
    public static final int SQL92_RESERVED_CURRENT=82;
    public static final int SQL92_RESERVED_DECLARE=83;
    public static final int SQL92_RESERVED_DEFAULT=84;
    public static final int SQL92_RESERVED_DELETE=85;
    public static final int SQL92_RESERVED_DESC=86;
    public static final int SQL92_RESERVED_DISTINCT=87;
    public static final int SQL92_RESERVED_DROP=88;
    public static final int SQL92_RESERVED_ELSE=89;
    public static final int SQL92_RESERVED_END=90;
    public static final int SQL92_RESERVED_EXCEPTION=91;
    public static final int SQL92_RESERVED_EXISTS=92;
    public static final int SQL92_RESERVED_FALSE=93;
    public static final int SQL92_RESERVED_FETCH=94;
    public static final int SQL92_RESERVED_FOR=95;
    public static final int SQL92_RESERVED_FROM=96;
    public static final int SQL92_RESERVED_GOTO=97;
    public static final int SQL92_RESERVED_GRANT=98;
    public static final int SQL92_RESERVED_GROUP=99;
    public static final int SQL92_RESERVED_HAVING=100;
    public static final int SQL92_RESERVED_IN=101;
    public static final int SQL92_RESERVED_INSERT=102;
    public static final int SQL92_RESERVED_INTERSECT=103;
    public static final int SQL92_RESERVED_INTO=104;
    public static final int SQL92_RESERVED_IS=105;
    public static final int SQL92_RESERVED_LIKE=106;
    public static final int SQL92_RESERVED_NOT=107;
    public static final int SQL92_RESERVED_NULL=108;
    public static final int SQL92_RESERVED_OF=109;
    public static final int SQL92_RESERVED_ON=110;
    public static final int SQL92_RESERVED_OPTION=111;
    public static final int SQL92_RESERVED_OR=112;
    public static final int SQL92_RESERVED_ORDER=113;
    public static final int SQL92_RESERVED_OVERLAPS=114;
    public static final int SQL92_RESERVED_PRIOR=115;
    public static final int SQL92_RESERVED_PROCEDURE=116;
    public static final int SQL92_RESERVED_PUBLIC=117;
    public static final int SQL92_RESERVED_REVOKE=118;
    public static final int SQL92_RESERVED_SELECT=119;
    public static final int SQL92_RESERVED_SIZE=120;
    public static final int SQL92_RESERVED_SQL=121;
    public static final int SQL92_RESERVED_TABLE=122;
    public static final int SQL92_RESERVED_THEN=123;
    public static final int SQL92_RESERVED_TO=124;
    public static final int SQL92_RESERVED_TRUE=125;
    public static final int SQL92_RESERVED_UNION=126;
    public static final int SQL92_RESERVED_UNIQUE=127;
    public static final int SQL92_RESERVED_UPDATE=128;
    public static final int SQL92_RESERVED_VALUES=129;
    public static final int SQL92_RESERVED_VIEW=130;
    public static final int SQL92_RESERVED_WHEN=131;
    public static final int SQL92_RESERVED_WHERE=132;
    public static final int SQL92_RESERVED_WITH=133;
    public static final int UNDERSCORE=134;
    public static final int UNSIGNED_INTEGER=135;
    public static final int VERTICAL_BAR=136;
    public static final int ADD_VK=137;
    public static final int AFTER_VK=138;
    public static final int AGENT_VK=139;
    public static final int AGGREGATE_VK=140;
    public static final int ALIAS=141;
    public static final int ANALYZE_VK=142;
    public static final int ANY_ELEMENT=143;
    public static final int ANY_MODE=144;
    public static final int ARGUMENT=146;
    public static final int ARGUMENTS=147;
    public static final int ASSIGN=148;
    public static final int ASSOCIATE_VK=149;
    public static final int ATTRIBUTE_NAME=151;
    public static final int AT_VK=153;
    public static final int AUDIT_VK=154;
    public static final int AUTHID_VK=155;
    public static final int AUTOMATIC_VK=156;
    public static final int AUTONOMOUS_TRANSACTION_VK=157;
    public static final int AUTO_VK=158;
    public static final int BATCH_VK=159;
    public static final int BEFORE_VK=160;
    public static final int BFILE_VK=161;
    public static final int BINARY_DOUBLE_VK=162;
    public static final int BINARY_FLOAT_VK=163;
    public static final int BINARY_INTEGER_VK=164;
    public static final int BIT_VK=165;
    public static final int BLOB_VK=166;
    public static final int BLOCK_VK=167;
    public static final int BODY_VK=168;
    public static final int BOOLEAN_VK=169;
    public static final int BOTH_VK=170;
    public static final int BULK_VK=171;
    public static final int BYTE_VK=172;
    public static final int CACHE_VK=173;
    public static final int CALL_VK=174;
    public static final int CANONICAL_VK=175;
    public static final int CASCADE_VK=176;
    public static final int CASCATED_ELEMENT=177;
    public static final int CAST_VK=178;
    public static final int CHARACTER_VK=179;
    public static final int CHAR_CS_VK=180;
    public static final int CHAR_SET_NAME=181;
    public static final int CHAR_VK=183;
    public static final int CHR_VK=184;
    public static final int CLOB_VK=185;
    public static final int CLOSE_VK=186;
    public static final int CLUSTER_VK=187;
    public static final int COLLECTION_MODE=188;
    public static final int COLLECTION_NAME=189;
    public static final int COLLECT_VK=190;
    public static final int COLUMNS=192;
    public static final int COLUMN_NAME=193;
    public static final int COMMENT_VK=195;
    public static final int COMMITTED_VK=196;
    public static final int COMMIT_VK=197;
    public static final int COMPATIBILITY_VK=198;
    public static final int COMPILE_VK=199;
    public static final int COMPOUND_VK=200;
    public static final int CONDITIONAL_INSERT=202;
    public static final int CONSTANT_VK=203;
    public static final int CONSTRAINT_NAME=204;
    public static final int CONSTRUCTOR_VK=205;
    public static final int CONTENT_VK=206;
    public static final int CONTEXT_VK=207;
    public static final int CONTINUE_VK=208;
    public static final int CONVERT_VK=209;
    public static final int CORRUPT_XID_ALL_VK=210;
    public static final int CORRUPT_XID_VK=211;
    public static final int COST_CLASS_NAME=212;
    public static final int COST_VK=213;
    public static final int COUNT_VK=214;
    public static final int CROSS_VK=215;
    public static final int CUBE_VK=216;
    public static final int CURRENT_USER_VK=217;
    public static final int CURRENT_VK=218;
    public static final int CURSOR_NAME=219;
    public static final int CUSTOMDATUM_VK=220;
    public static final int CUSTOM_TYPE=221;
    public static final int CYCLE_VK=222;
    public static final int C_VK=223;
    public static final int DATABASE_VK=224;
    public static final int DATETIME_OP=225;
    public static final int DATE_VK=226;
    public static final int DAY_VK=227;
    public static final int DBTIMEZONE_VK=228;
    public static final int DB_ROLE_CHANGE_VK=229;
    public static final int DDL_VK=230;
    public static final int DEBUG_VK=231;
    public static final int DECIMAL_VK=232;
    public static final int DECOMPOSE_VK=233;
    public static final int DECREMENT_VK=234;
    public static final int DEC_VK=235;
    public static final int DEFAULTS_VK=236;
    public static final int DEFERRED_VK=237;
    public static final int DEFINER_VK=238;
    public static final int DENSE_RANK_VK=240;
    public static final int DETERMINISTIC_VK=241;
    public static final int DIMENSION_VK=242;
    public static final int DIRECT_MODE=243;
    public static final int DISABLE_VK=244;
    public static final int DISASSOCIATE_VK=245;
    public static final int DML_STATEMENT=246;
    public static final int DOCUMENT_VK=247;
    public static final int DOT_ASTERISK=248;
    public static final int DOUBLE_VK=249;
    public static final int DSINTERVAL_UNCONSTRAINED_VK=250;
    public static final int ELEMENT=251;
    public static final int ELEMENTS_MODE=252;
    public static final int ENABLE_VK=253;
    public static final int ENCODING_VK=254;
    public static final int ENTITYESCAPING_VK=255;
    public static final int EVALNAME_VK=257;
    public static final int EXCEPTIONS_VK=259;
    public static final int EXCEPTION_INIT_VK=260;
    public static final int EXCEPTION_NAME=261;
    public static final int EXCLUDE_VK=262;
    public static final int EXECUTE_VK=263;
    public static final int EXIT_VK=264;
    public static final int EXPR=265;
    public static final int EXPR_LIST=266;
    public static final int EXTERNAL_VK=267;
    public static final int EXTRACT_VK=268;
    public static final int FACTORING=269;
    public static final int FINAL_VK=270;
    public static final int FIRST_VALUE_VK=271;
    public static final int FIRST_VK=272;
    public static final int FLOAT_VK=273;
    public static final int FOLLOWING_VK=274;
    public static final int FOLLOWS_VK=275;
    public static final int FORALL_VK=276;
    public static final int FORCE_VK=277;
    public static final int FOR_MULTI_COLUMN=278;
    public static final int FOR_SINGLE_COLUMN=279;
    public static final int FULL_VK=280;
    public static final int FUNCTION_ENABLING_OVER=281;
    public static final int FUNCTION_ENABLING_USING=282;
    public static final int FUNCTION_ENABLING_WITHIN_OR_OVER=283;
    public static final int FUNCTION_NAME=284;
    public static final int GROUPING_VK=287;
    public static final int GROUPIN_SET=288;
    public static final int GROUP_BY_ELEMENT=289;
    public static final int HASH_VK=290;
    public static final int HIDE_VK=291;
    public static final int HIERARCHICAL=292;
    public static final int HOSTED_VARIABLE=293;
    public static final int HOSTED_VARIABLE_NAME=294;
    public static final int HOSTED_VARIABLE_ROUTINE_CALL=295;
    public static final int HOUR_VK=296;
    public static final int ID=297;
    public static final int IGNORE_VK=298;
    public static final int IMMEDIATE_VK=299;
    public static final int IMPLEMENTATION_TYPE_NAME=300;
    public static final int INCLUDE_VK=301;
    public static final int INCLUDING_VK=302;
    public static final int INCREMENT_VK=303;
    public static final int INDENT_VK=304;
    public static final int INDEX_NAME=305;
    public static final int INLINE_VK=306;
    public static final int INNER_VK=307;
    public static final int INOUT_VK=308;
    public static final int INSERT_STATEMENT=309;
    public static final int INSTANTIABLE_VK=310;
    public static final int INSTEAD_VK=311;
    public static final int INTEGER_VK=312;
    public static final int INTERVAL_DATATYPE=313;
    public static final int INT_VK=315;
    public static final int INVALIDATE_VK=316;
    public static final int ISOLATION_VK=317;
    public static final int IS_A_SET=318;
    public static final int IS_EMPTY=319;
    public static final int IS_INFINITE=320;
    public static final int IS_NAN=321;
    public static final int IS_NOT_A_SET=322;
    public static final int IS_NOT_EMPTY=323;
    public static final int IS_NOT_INFINITE=324;
    public static final int IS_NOT_NAN=325;
    public static final int IS_NOT_NULL=326;
    public static final int IS_NOT_OF_TYPE=327;
    public static final int IS_NOT_PRESENT=328;
    public static final int IS_NULL=329;
    public static final int IS_OF_TYPE=330;
    public static final int IS_PRESENT=331;
    public static final int ITERATE_VK=332;
    public static final int JAVA_VK=333;
    public static final int JOIN_DEF=334;
    public static final int KEEP_VK=335;
    public static final int LABEL_NAME=336;
    public static final int LANGUAGE_VK=337;
    public static final int LAST_VALUE_VK=338;
    public static final int LAST_VK=339;
    public static final int LEADING_VK=340;
    public static final int LEFT_VK=343;
    public static final int LIBRARY_VK=346;
    public static final int LIKE2_VK=347;
    public static final int LIKE4_VK=348;
    public static final int LIKEC_VK=349;
    public static final int LIMIT_VK=350;
    public static final int LINK_NAME=351;
    public static final int LOCAL_VK=352;
    public static final int LOCK_TABLE_ELEMENT=353;
    public static final int LOGIC_EXPR=354;
    public static final int LOGOFF_VK=355;
    public static final int LOGON_VK=356;
    public static final int LOG_VK=357;
    public static final int LONG_VK=358;
    public static final int LOOP_VK=359;
    public static final int MAIN_MODEL=360;
    public static final int MAIN_MODEL_NAME=361;
    public static final int MAP_VK=362;
    public static final int MAXVALUE_VK=363;
    public static final int MEASURES_VK=364;
    public static final int MEMBER_VK=365;
    public static final int MERGE_INSERT=366;
    public static final int MERGE_UPDATE=367;
    public static final int MERGE_VK=368;
    public static final int MINUTE_VK=370;
    public static final int MINVALUE_VK=371;
    public static final int MLSLABEL_VK=372;
    public static final int MODEL_COLUMN=373;
    public static final int MODEL_COLUMNS=374;
    public static final int MODEL_EXPRESSION=375;
    public static final int MODEL_RULE=376;
    public static final int MODEL_RULES=377;
    public static final int MODIFY_VK=378;
    public static final int MONTH_VK=379;
    public static final int MULTI_TABLE_MODE=380;
    public static final int NAME_VK=381;
    public static final int NATIVE_DATATYPE=382;
    public static final int NATURALN_VK=383;
    public static final int NATURAL_VK=384;
    public static final int NAV_VK=385;
    public static final int NCHAR_CS_VK=386;
    public static final int NCHAR_VK=387;
    public static final int NCLOB_VK=388;
    public static final int NESTED_VK=389;
    public static final int NEW_VK=390;
    public static final int NOAUDIT_VK=391;
    public static final int NOCACHE_VK=392;
    public static final int NOCOPY_VK=393;
    public static final int NOCYCLE_VK=394;
    public static final int NOENTITYESCAPING_VK=395;
    public static final int NOMAXVALUE_VK=396;
    public static final int NOMINVALUE_VK=397;
    public static final int NOORDER_VK=398;
    public static final int NOSCHEMACHECK_VK=399;
    public static final int NOT_BETWEEN=400;
    public static final int NOT_IN=402;
    public static final int NOT_LIKE=403;
    public static final int NO_VK=404;
    public static final int NULLS_VK=405;
    public static final int NUMBER_VK=406;
    public static final int NUMERIC_VK=407;
    public static final int NVARCHAR2_VK=408;
    public static final int OBJECT_VK=409;
    public static final int OFF_VK=410;
    public static final int OLD_VK=411;
    public static final int ONLY_VK=412;
    public static final int OPEN_VK=413;
    public static final int ORADATA_VK=414;
    public static final int ORDER_BY_ELEMENT=415;
    public static final int ORDER_BY_ELEMENTS=416;
    public static final int ORDINALITY_VK=417;
    public static final int OUT_VK=418;
    public static final int OVERRIDING_VK=419;
    public static final int OVER_VK=420;
    public static final int PACKAGE_NAME=421;
    public static final int PACKAGE_VK=422;
    public static final int PARALLEL_ENABLE_VK=423;
    public static final int PARAMETERS_VK=424;
    public static final int PARAMETER_NAME=425;
    public static final int PARENT_VK=426;
    public static final int PARTITION_VK=427;
    public static final int PASSING_VK=428;
    public static final int PERCENT_FOUND_VK=430;
    public static final int PERCENT_ISOPEN_VK=431;
    public static final int PERCENT_NOTFOUND_VK=432;
    public static final int PERCENT_ROWCOUNT_VK=433;
    public static final int PERCENT_ROWTYPE_VK=434;
    public static final int PERCENT_TYPE_VK=435;
    public static final int PIPELINED_VK=437;
    public static final int PIVOT_ALIAS=438;
    public static final int PIVOT_ELEMENT=439;
    public static final int PIVOT_IN_ELEMENT=440;
    public static final int PIVOT_VK=441;
    public static final int PLS_INTEGER_VK=456;
    public static final int POSITIVEN_VK=458;
    public static final int POSITIVE_VK=459;
    public static final int PRAGMA_VK=460;
    public static final int PRECEDING_VK=461;
    public static final int PRECISION=462;
    public static final int PRECISION_VK=463;
    public static final int PREDICTION_FUNCTION=464;
    public static final int PROCEDURE_NAME=465;
    public static final int QUERY_NAME=466;
    public static final int RAISE_VK=467;
    public static final int RANGE_VK=468;
    public static final int RAW_VK=469;
    public static final int READ_VK=470;
    public static final int REAL_VK=471;
    public static final int RECORD_NAME=472;
    public static final int REFERENCE_MODEL_NAME=473;
    public static final int REFERENCE_VK=474;
    public static final int REFERENCING_VK=475;
    public static final int REF_VK=476;
    public static final int REJECT_VK=478;
    public static final int RELIES_ON_VK=479;
    public static final int RENAME_VK=480;
    public static final int REPLACE_VK=481;
    public static final int RESTRICT_REFERENCES_VK=482;
    public static final int RESULT_CACHE_VK=483;
    public static final int RETURN_VK=484;
    public static final int REUSE_VK=485;
    public static final int REVERSE_VK=486;
    public static final int RIGHT_VK=489;
    public static final int ROLLBACK_SEGMENT_NAME=490;
    public static final int ROLLBACK_VK=491;
    public static final int ROLLUP_VK=492;
    public static final int ROUTINE_CALL=493;
    public static final int ROUTINE_NAME=494;
    public static final int ROWID_VK=495;
    public static final int ROWS_VK=496;
    public static final int ROW_VK=497;
    public static final int RULES_VK=498;
    public static final int SAMPLE_VK=499;
    public static final int SAVEPOINT_NAME=500;
    public static final int SAVEPOINT_VK=501;
    public static final int SCHEMACHECK_VK=502;
    public static final int SCHEMA_NAME=503;
    public static final int SCHEMA_VK=504;
    public static final int SCN_VK=505;
    public static final int SEARCHED_CASE=506;
    public static final int SECOND_VK=507;
    public static final int SEED_VK=508;
    public static final int SELECTED_TABLEVIEW=509;
    public static final int SELECT_ITEM=510;
    public static final int SELECT_LIST=511;
    public static final int SELECT_MODE=512;
    public static final int SELECT_STATEMENT=513;
    public static final int SELF_VK=514;
    public static final int SEQUENCE_NAME=515;
    public static final int SEQUENCE_VK=516;
    public static final int SEQUENTIAL_VK=517;
    public static final int SERIALIZABLE_VK=518;
    public static final int SERIALLY_REUSABLE_VK=519;
    public static final int SERVERERROR_VK=520;
    public static final int SESSIONTIMEZONE_VK=521;
    public static final int SET_VK=522;
    public static final int SHOW_VK=523;
    public static final int SHUTDOWN_VK=524;
    public static final int SIBLINGS_VK=525;
    public static final int SIGNTYPE_VK=526;
    public static final int SIMPLE_CASE=527;
    public static final int SIMPLE_INTEGER_VK=528;
    public static final int SINGLE_TABLE_MODE=529;
    public static final int SINGLE_VK=530;
    public static final int SKIP_VK=531;
    public static final int SMALLINT_VK=532;
    public static final int SOME_VK=534;
    public static final int SPECIFICATION_VK=535;
    public static final int SQLDATA_VK=597;
    public static final int STANDALONE_VK=598;
    public static final int STANDARD_FUNCTION=599;
    public static final int STARTUP_VK=600;
    public static final int STATIC_RETURNING=601;
    public static final int STATIC_VK=602;
    public static final int STATISTICS_VK=603;
    public static final int STRING_VK=604;
    public static final int SUBMULTISET_VK=605;
    public static final int SUBPARTITION_VK=606;
    public static final int SUBQUERY=607;
    public static final int SUSPEND_VK=608;
    public static final int TABLEVIEW_NAME=609;
    public static final int TABLE_ELEMENT=610;
    public static final int TABLE_EXPRESSION=611;
    public static final int TABLE_REF=612;
    public static final int TABLE_REF_ELEMENT=613;
    public static final int TABLE_VAR_NAME=614;
    public static final int TIMESTAMP_LTZ_UNCONSTRAINED_VK=615;
    public static final int TIMESTAMP_TZ_UNCONSTRAINED_VK=616;
    public static final int TIMESTAMP_UNCONSTRAINED_VK=617;
    public static final int TIMESTAMP_VK=618;
    public static final int TIMEZONE_ABBR_VK=619;
    public static final int TIMEZONE_HOUR_VK=620;
    public static final int TIMEZONE_MINUTE_VK=621;
    public static final int TIMEZONE_REGION_VK=622;
    public static final int TIME_VK=623;
    public static final int TRAILING_VK=624;
    public static final int TRANSLATE_VK=625;
    public static final int TREAT_VK=626;
    public static final int TRIGGER_NAME=627;
    public static final int TRIM_VK=628;
    public static final int TRUNCATE_VK=629;
    public static final int TYPE_NAME=630;
    public static final int TYPE_VK=631;
    public static final int UNARY_OPERATOR=632;
    public static final int UNBOUNDED_VK=633;
    public static final int UNDER_VK=634;
    public static final int UNLIMITED_VK=635;
    public static final int UNPIVOT_IN_ELEMENT=636;
    public static final int UNPIVOT_VK=637;
    public static final int UNTIL_VK=639;
    public static final int UPDATED_VK=640;
    public static final int UPSERT_VK=641;
    public static final int UROWID_VK=642;
    public static final int VALIDATE_VK=643;
    public static final int VALUE_VK=644;
    public static final int VARCHAR2_VK=645;
    public static final int VARCHAR_VK=646;
    public static final int VARIABLE_NAME=647;
    public static final int VECTOR_EXPR=648;
    public static final int VERSIONS_VK=649;
    public static final int VERSION_VK=650;
    public static final int WAIT_VK=651;
    public static final int WELLFORMED_VK=652;
    public static final int WITHIN_VK=653;
    public static final int WORK_VK=654;
    public static final int WRITE_VK=655;
    public static final int XMLAGG_VK=656;
    public static final int XMLATTRIBUTES_VK=657;
    public static final int XMLCAST_VK=658;
    public static final int XMLCOLATTVAL_VK=659;
    public static final int XMLELEMENT_VK=660;
    public static final int XMLEXISTS_VK=661;
    public static final int XMLFOREST_VK=662;
    public static final int XMLNAMESPACES_VK=663;
    public static final int XMLPARSE_VK=664;
    public static final int XMLPI_VK=665;
    public static final int XMLQUERY_VK=666;
    public static final int XMLROOT_VK=667;
    public static final int XMLSERIALIZE_VK=668;
    public static final int XMLTABLE_VK=669;
    public static final int XML_ALIAS=670;
    public static final int XML_COLUMN=671;
    public static final int XML_COLUMN_NAME=672;
    public static final int XML_ELEMENT=673;
    public static final int XML_VK=674;
    public static final int YEAR_VK=675;
    public static final int YES_VK=676;
    public static final int YMINTERVAL_UNCONSTRAINED_VK=677;
    public static final int AFTER_EACH_ROW=678;
    public static final int AFTER_STATEMENT=679;
    public static final int ALTER_ATTRIBUTE=680;
    public static final int ALTER_COLLECTION=681;
    public static final int ALTER_FUNCTION=682;
    public static final int ALTER_METHOD=683;
    public static final int ALTER_METHOD_ELEMENT=684;
    public static final int ALTER_PACKAGE=685;
    public static final int ALTER_PROCEDURE=686;
    public static final int ALTER_SEQUENCE=687;
    public static final int ALTER_TRIGGER=688;
    public static final int ALTER_TYPE=689;
    public static final int ATTRIBUTE=690;
    public static final int ATTRIBUTES=691;
    public static final int BEFORE_EACH_ROW=692;
    public static final int BEFORE_STATEMENT=693;
    public static final int BLOCK=694;
    public static final int BODY=695;
    public static final int BODY_MODE=696;
    public static final int CALL_MODE=697;
    public static final int COMPILATION_UNIT=698;
    public static final int COMPILER_PARAMETER=699;
    public static final int COMPOUND_DML=700;
    public static final int CONSTRUCTOR_SPEC=701;
    public static final int CREATE_FUNCTION=702;
    public static final int CREATE_PACKAGE_BODY=703;
    public static final int CREATE_PACKAGE_SPEC=704;
    public static final int CREATE_PROCEDURE=705;
    public static final int CREATE_SEQUENCE=706;
    public static final int CREATE_TRIGGER=707;
    public static final int CREATE_TYPE_BODY=708;
    public static final int CREATE_TYPE_SPEC=709;
    public static final int CURSOR_BASED_FOR=710;
    public static final int CURSOR_DECLARE=711;
    public static final int DEFAULT_VALUE=712;
    public static final int DEPENDENT_HANDLING=713;
    public static final int DML_EVENT=714;
    public static final int DML_EVENT_ELEMENT=715;
    public static final int DROP_FUNCTION=716;
    public static final int DROP_PACKAGE=717;
    public static final int DROP_PROCEDURE=718;
    public static final int DROP_SEQUENCE=719;
    public static final int DROP_TRIGGER=720;
    public static final int DROP_TYPE=721;
    public static final int DYNAMIC_RETURN=722;
    public static final int ELEMENT_SPEC=723;
    public static final int EXCEPTION_DECLARE=724;
    public static final int FIELDS=725;
    public static final int FIELD_SPEC=726;
    public static final int FOR_EACH_ROW=727;
    public static final int FOR_LOOP=728;
    public static final int FUNCTION_SPEC=729;
    public static final int INDEXED_BY=730;
    public static final int INDEXED_FOR=731;
    public static final int INDICES_BOUND=732;
    public static final int LABEL_DECLARE=733;
    public static final int MODIFIER=734;
    public static final int NESTED_TABLE_TYPE_DEF=735;
    public static final int NON_DML=736;
    public static final int OBJECT_AS=737;
    public static final int OBJECT_MEMBERS=738;
    public static final int OBJECT_TYPE_DEF=739;
    public static final int ORDER_VK=740;
    public static final int PARAMETER=741;
    public static final int PARAMETERS=742;
    public static final int PRAGMA_DECLARE=743;
    public static final int PROCEDURE_SPEC=744;
    public static final int RECORD_TYPE_DECLARE=745;
    public static final int RECORD_VAR_DECLARE=746;
    public static final int SELECT_BASED_FOR=747;
    public static final int SET_CONSTRAINT=748;
    public static final int SET_SERVEROUTPUT=749;
    public static final int SET_TRANSACTION=750;
    public static final int SIMPLE_BOUND=751;
    public static final int SIMPLE_DML=752;
    public static final int SQL_SCRIPT=753;
    public static final int START_VK=754;
    public static final int STATEMENTS=755;
    public static final int STREAMING_CLAUSE=756;
    public static final int SUBTYPE_DECLARE=757;
    public static final int TABLE_TYPE_DECLARE=758;
    public static final int TABLE_VAR_DECLARE=759;
    public static final int THREE_DOTS=760;
    public static final int TYPE_BODY_ELEMENTS=761;
    public static final int USING_MODE=762;
    public static final int VALUES_BOUND=763;
    public static final int VARIABLE_DECLARE=764;
    public static final int VARR_ARRAY_DEF=765;
    public static final int WHILE_LOOP=766;

    // delegates
    public TreeParser[] getDelegates() {
        return new TreeParser[] {};
    }

    // delegators


    public PLSQLWalker(TreeNodeStream input) {
        this(input, new RecognizerSharedState());
    }
    public PLSQLWalker(TreeNodeStream input, RecognizerSharedState state) {
        super(input, state);
    }

    public String[] getTokenNames() { return PLSQLWalker.tokenNames; }
    public String getGrammarFileName() { return "F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g"; }



    // $ANTLR start "compilation_unit"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:12:1: compilation_unit : ^( COMPILATION_UNIT ( unit_statement )* ) ;
    public final void compilation_unit() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:13:5: ( ^( COMPILATION_UNIT ( unit_statement )* ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:13:10: ^( COMPILATION_UNIT ( unit_statement )* )
            {
            match(input,COMPILATION_UNIT,FOLLOW_COMPILATION_UNIT_in_compilation_unit49); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:13:29: ( unit_statement )*
                loop1:
                do {
                    int alt1=2;
                    int LA1_0 = input.LA(1);

                    if ( (LA1_0==ALTER_FUNCTION||(LA1_0 >= ALTER_PACKAGE && LA1_0 <= ALTER_TYPE)||(LA1_0 >= CREATE_FUNCTION && LA1_0 <= CREATE_TYPE_SPEC)||(LA1_0 >= DROP_FUNCTION && LA1_0 <= DROP_TYPE)) ) {
                        alt1=1;
                    }


                    switch (alt1) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:13:29: unit_statement
                	    {
                	    pushFollow(FOLLOW_unit_statement_in_compilation_unit51);
                	    unit_statement();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop1;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "compilation_unit"



    // $ANTLR start "sql_script"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:16:1: sql_script : ^( SQL_SCRIPT ( serveroutput_declaration )? seq_of_statements ) ;
    public final void sql_script() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:17:5: ( ^( SQL_SCRIPT ( serveroutput_declaration )? seq_of_statements ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:17:10: ^( SQL_SCRIPT ( serveroutput_declaration )? seq_of_statements )
            {
            match(input,SQL_SCRIPT,FOLLOW_SQL_SCRIPT_in_sql_script74); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:17:23: ( serveroutput_declaration )?
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==SET_SERVEROUTPUT) ) {
                alt2=1;
            }
            switch (alt2) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:17:23: serveroutput_declaration
                    {
                    pushFollow(FOLLOW_serveroutput_declaration_in_sql_script76);
                    serveroutput_declaration();

                    state._fsp--;


                    }
                    break;

            }


            pushFollow(FOLLOW_seq_of_statements_in_sql_script79);
            seq_of_statements();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "sql_script"



    // $ANTLR start "serveroutput_declaration"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:20:1: serveroutput_declaration : ^( SET_SERVEROUTPUT ( SQL92_RESERVED_ON | OFF_VK ) ) ;
    public final void serveroutput_declaration() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:21:5: ( ^( SET_SERVEROUTPUT ( SQL92_RESERVED_ON | OFF_VK ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:21:10: ^( SET_SERVEROUTPUT ( SQL92_RESERVED_ON | OFF_VK ) )
            {
            match(input,SET_SERVEROUTPUT,FOLLOW_SET_SERVEROUTPUT_in_serveroutput_declaration101); 

            match(input, Token.DOWN, null); 
            if ( input.LA(1)==SQL92_RESERVED_ON||input.LA(1)==OFF_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "serveroutput_declaration"



    // $ANTLR start "unit_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:24:1: unit_statement : ( alter_function | alter_package | alter_procedure | alter_sequence | alter_trigger | alter_type | create_function_body | create_procedure_body | create_package | create_sequence | create_trigger | create_type | drop_function | drop_package | drop_procedure | drop_sequence | drop_trigger | drop_type );
    public final void unit_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:25:5: ( alter_function | alter_package | alter_procedure | alter_sequence | alter_trigger | alter_type | create_function_body | create_procedure_body | create_package | create_sequence | create_trigger | create_type | drop_function | drop_package | drop_procedure | drop_sequence | drop_trigger | drop_type )
            int alt3=18;
            switch ( input.LA(1) ) {
            case ALTER_FUNCTION:
                {
                alt3=1;
                }
                break;
            case ALTER_PACKAGE:
                {
                alt3=2;
                }
                break;
            case ALTER_PROCEDURE:
                {
                alt3=3;
                }
                break;
            case ALTER_SEQUENCE:
                {
                alt3=4;
                }
                break;
            case ALTER_TRIGGER:
                {
                alt3=5;
                }
                break;
            case ALTER_TYPE:
                {
                alt3=6;
                }
                break;
            case CREATE_FUNCTION:
                {
                alt3=7;
                }
                break;
            case CREATE_PROCEDURE:
                {
                alt3=8;
                }
                break;
            case CREATE_PACKAGE_BODY:
            case CREATE_PACKAGE_SPEC:
                {
                alt3=9;
                }
                break;
            case CREATE_SEQUENCE:
                {
                alt3=10;
                }
                break;
            case CREATE_TRIGGER:
                {
                alt3=11;
                }
                break;
            case CREATE_TYPE_BODY:
            case CREATE_TYPE_SPEC:
                {
                alt3=12;
                }
                break;
            case DROP_FUNCTION:
                {
                alt3=13;
                }
                break;
            case DROP_PACKAGE:
                {
                alt3=14;
                }
                break;
            case DROP_PROCEDURE:
                {
                alt3=15;
                }
                break;
            case DROP_SEQUENCE:
                {
                alt3=16;
                }
                break;
            case DROP_TRIGGER:
                {
                alt3=17;
                }
                break;
            case DROP_TYPE:
                {
                alt3=18;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;

            }

            switch (alt3) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:25:10: alter_function
                    {
                    pushFollow(FOLLOW_alter_function_in_unit_statement128);
                    alter_function();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:26:10: alter_package
                    {
                    pushFollow(FOLLOW_alter_package_in_unit_statement139);
                    alter_package();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:27:10: alter_procedure
                    {
                    pushFollow(FOLLOW_alter_procedure_in_unit_statement150);
                    alter_procedure();

                    state._fsp--;


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:28:10: alter_sequence
                    {
                    pushFollow(FOLLOW_alter_sequence_in_unit_statement161);
                    alter_sequence();

                    state._fsp--;


                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:29:10: alter_trigger
                    {
                    pushFollow(FOLLOW_alter_trigger_in_unit_statement172);
                    alter_trigger();

                    state._fsp--;


                    }
                    break;
                case 6 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:30:10: alter_type
                    {
                    pushFollow(FOLLOW_alter_type_in_unit_statement183);
                    alter_type();

                    state._fsp--;


                    }
                    break;
                case 7 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:31:10: create_function_body
                    {
                    pushFollow(FOLLOW_create_function_body_in_unit_statement194);
                    create_function_body();

                    state._fsp--;


                    }
                    break;
                case 8 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:32:10: create_procedure_body
                    {
                    pushFollow(FOLLOW_create_procedure_body_in_unit_statement205);
                    create_procedure_body();

                    state._fsp--;


                    }
                    break;
                case 9 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:33:10: create_package
                    {
                    pushFollow(FOLLOW_create_package_in_unit_statement216);
                    create_package();

                    state._fsp--;


                    }
                    break;
                case 10 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:34:10: create_sequence
                    {
                    pushFollow(FOLLOW_create_sequence_in_unit_statement227);
                    create_sequence();

                    state._fsp--;


                    }
                    break;
                case 11 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:35:10: create_trigger
                    {
                    pushFollow(FOLLOW_create_trigger_in_unit_statement238);
                    create_trigger();

                    state._fsp--;


                    }
                    break;
                case 12 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:36:10: create_type
                    {
                    pushFollow(FOLLOW_create_type_in_unit_statement249);
                    create_type();

                    state._fsp--;


                    }
                    break;
                case 13 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:37:10: drop_function
                    {
                    pushFollow(FOLLOW_drop_function_in_unit_statement260);
                    drop_function();

                    state._fsp--;


                    }
                    break;
                case 14 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:38:10: drop_package
                    {
                    pushFollow(FOLLOW_drop_package_in_unit_statement271);
                    drop_package();

                    state._fsp--;


                    }
                    break;
                case 15 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:39:10: drop_procedure
                    {
                    pushFollow(FOLLOW_drop_procedure_in_unit_statement282);
                    drop_procedure();

                    state._fsp--;


                    }
                    break;
                case 16 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:40:10: drop_sequence
                    {
                    pushFollow(FOLLOW_drop_sequence_in_unit_statement293);
                    drop_sequence();

                    state._fsp--;


                    }
                    break;
                case 17 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:41:10: drop_trigger
                    {
                    pushFollow(FOLLOW_drop_trigger_in_unit_statement304);
                    drop_trigger();

                    state._fsp--;


                    }
                    break;
                case 18 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:42:10: drop_type
                    {
                    pushFollow(FOLLOW_drop_type_in_unit_statement315);
                    drop_type();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "unit_statement"



    // $ANTLR start "drop_function"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:49:1: drop_function : ^( DROP_FUNCTION function_name ) ;
    public final void drop_function() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:50:5: ( ^( DROP_FUNCTION function_name ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:50:10: ^( DROP_FUNCTION function_name )
            {
            match(input,DROP_FUNCTION,FOLLOW_DROP_FUNCTION_in_drop_function340); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_function_name_in_drop_function342);
            function_name();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "drop_function"



    // $ANTLR start "alter_function"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:53:1: alter_function : ^( ALTER_FUNCTION function_name ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* ) ;
    public final void alter_function() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:54:5: ( ^( ALTER_FUNCTION function_name ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:54:10: ^( ALTER_FUNCTION function_name ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* )
            {
            match(input,ALTER_FUNCTION,FOLLOW_ALTER_FUNCTION_in_alter_function364); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_function_name_in_alter_function366);
            function_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:54:41: ( DEBUG_VK )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==DEBUG_VK) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:54:41: DEBUG_VK
                    {
                    match(input,DEBUG_VK,FOLLOW_DEBUG_VK_in_alter_function368); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:54:51: ( REUSE_VK )?
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==REUSE_VK) ) {
                alt5=1;
            }
            switch (alt5) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:54:51: REUSE_VK
                    {
                    match(input,REUSE_VK,FOLLOW_REUSE_VK_in_alter_function371); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:54:61: ( compiler_parameters_clause )*
            loop6:
            do {
                int alt6=2;
                int LA6_0 = input.LA(1);

                if ( (LA6_0==COMPILER_PARAMETER) ) {
                    alt6=1;
                }


                switch (alt6) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:54:61: compiler_parameters_clause
            	    {
            	    pushFollow(FOLLOW_compiler_parameters_clause_in_alter_function374);
            	    compiler_parameters_clause();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop6;
                }
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "alter_function"



    // $ANTLR start "create_function_body"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:57:1: create_function_body : ^( CREATE_FUNCTION ( REPLACE_VK )? function_name type_spec ^( PARAMETERS ( parameter )* ) ( invoker_rights_clause )* ( parallel_enable_clause )* ( result_cache_clause )* ( DETERMINISTIC_VK )* ( ^( USING_MODE ( PIPELINED_VK )? ( AGGREGATE_VK )? implementation_type_name ) | ^( CALL_MODE ( PIPELINED_VK )? call_spec ) | ^( BODY_MODE ( PIPELINED_VK )? ( declare_spec )* body ) ) ) ;
    public final void create_function_body() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:58:5: ( ^( CREATE_FUNCTION ( REPLACE_VK )? function_name type_spec ^( PARAMETERS ( parameter )* ) ( invoker_rights_clause )* ( parallel_enable_clause )* ( result_cache_clause )* ( DETERMINISTIC_VK )* ( ^( USING_MODE ( PIPELINED_VK )? ( AGGREGATE_VK )? implementation_type_name ) | ^( CALL_MODE ( PIPELINED_VK )? call_spec ) | ^( BODY_MODE ( PIPELINED_VK )? ( declare_spec )* body ) ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:58:10: ^( CREATE_FUNCTION ( REPLACE_VK )? function_name type_spec ^( PARAMETERS ( parameter )* ) ( invoker_rights_clause )* ( parallel_enable_clause )* ( result_cache_clause )* ( DETERMINISTIC_VK )* ( ^( USING_MODE ( PIPELINED_VK )? ( AGGREGATE_VK )? implementation_type_name ) | ^( CALL_MODE ( PIPELINED_VK )? call_spec ) | ^( BODY_MODE ( PIPELINED_VK )? ( declare_spec )* body ) ) )
            {
            match(input,CREATE_FUNCTION,FOLLOW_CREATE_FUNCTION_in_create_function_body397); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:58:28: ( REPLACE_VK )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==REPLACE_VK) ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:58:28: REPLACE_VK
                    {
                    match(input,REPLACE_VK,FOLLOW_REPLACE_VK_in_create_function_body399); 

                    }
                    break;

            }


            pushFollow(FOLLOW_function_name_in_create_function_body402);
            function_name();

            state._fsp--;


            pushFollow(FOLLOW_type_spec_in_create_function_body404);
            type_spec();

            state._fsp--;


            match(input,PARAMETERS,FOLLOW_PARAMETERS_in_create_function_body407); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:58:77: ( parameter )*
                loop8:
                do {
                    int alt8=2;
                    int LA8_0 = input.LA(1);

                    if ( (LA8_0==PARAMETER) ) {
                        alt8=1;
                    }


                    switch (alt8) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:58:77: parameter
                	    {
                	    pushFollow(FOLLOW_parameter_in_create_function_body409);
                	    parameter();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop8;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:59:13: ( invoker_rights_clause )*
            loop9:
            do {
                int alt9=2;
                int LA9_0 = input.LA(1);

                if ( (LA9_0==AUTHID_VK) ) {
                    alt9=1;
                }


                switch (alt9) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:59:13: invoker_rights_clause
            	    {
            	    pushFollow(FOLLOW_invoker_rights_clause_in_create_function_body425);
            	    invoker_rights_clause();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop9;
                }
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:59:36: ( parallel_enable_clause )*
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

                if ( (LA10_0==PARALLEL_ENABLE_VK) ) {
                    alt10=1;
                }


                switch (alt10) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:59:36: parallel_enable_clause
            	    {
            	    pushFollow(FOLLOW_parallel_enable_clause_in_create_function_body428);
            	    parallel_enable_clause();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop10;
                }
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:59:60: ( result_cache_clause )*
            loop11:
            do {
                int alt11=2;
                int LA11_0 = input.LA(1);

                if ( (LA11_0==RESULT_CACHE_VK) ) {
                    alt11=1;
                }


                switch (alt11) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:59:60: result_cache_clause
            	    {
            	    pushFollow(FOLLOW_result_cache_clause_in_create_function_body431);
            	    result_cache_clause();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop11;
                }
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:59:81: ( DETERMINISTIC_VK )*
            loop12:
            do {
                int alt12=2;
                int LA12_0 = input.LA(1);

                if ( (LA12_0==DETERMINISTIC_VK) ) {
                    alt12=1;
                }


                switch (alt12) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:59:81: DETERMINISTIC_VK
            	    {
            	    match(input,DETERMINISTIC_VK,FOLLOW_DETERMINISTIC_VK_in_create_function_body434); 

            	    }
            	    break;

            	default :
            	    break loop12;
                }
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:60:13: ( ^( USING_MODE ( PIPELINED_VK )? ( AGGREGATE_VK )? implementation_type_name ) | ^( CALL_MODE ( PIPELINED_VK )? call_spec ) | ^( BODY_MODE ( PIPELINED_VK )? ( declare_spec )* body ) )
            int alt18=3;
            switch ( input.LA(1) ) {
            case USING_MODE:
                {
                alt18=1;
                }
                break;
            case CALL_MODE:
                {
                alt18=2;
                }
                break;
            case BODY_MODE:
                {
                alt18=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 18, 0, input);

                throw nvae;

            }

            switch (alt18) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:60:18: ^( USING_MODE ( PIPELINED_VK )? ( AGGREGATE_VK )? implementation_type_name )
                    {
                    match(input,USING_MODE,FOLLOW_USING_MODE_in_create_function_body455); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:60:31: ( PIPELINED_VK )?
                    int alt13=2;
                    int LA13_0 = input.LA(1);

                    if ( (LA13_0==PIPELINED_VK) ) {
                        alt13=1;
                    }
                    switch (alt13) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:60:31: PIPELINED_VK
                            {
                            match(input,PIPELINED_VK,FOLLOW_PIPELINED_VK_in_create_function_body457); 

                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:60:45: ( AGGREGATE_VK )?
                    int alt14=2;
                    int LA14_0 = input.LA(1);

                    if ( (LA14_0==AGGREGATE_VK) ) {
                        alt14=1;
                    }
                    switch (alt14) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:60:45: AGGREGATE_VK
                            {
                            match(input,AGGREGATE_VK,FOLLOW_AGGREGATE_VK_in_create_function_body460); 

                            }
                            break;

                    }


                    pushFollow(FOLLOW_implementation_type_name_in_create_function_body463);
                    implementation_type_name();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:61:18: ^( CALL_MODE ( PIPELINED_VK )? call_spec )
                    {
                    match(input,CALL_MODE,FOLLOW_CALL_MODE_in_create_function_body484); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:61:30: ( PIPELINED_VK )?
                    int alt15=2;
                    int LA15_0 = input.LA(1);

                    if ( (LA15_0==PIPELINED_VK) ) {
                        alt15=1;
                    }
                    switch (alt15) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:61:30: PIPELINED_VK
                            {
                            match(input,PIPELINED_VK,FOLLOW_PIPELINED_VK_in_create_function_body486); 

                            }
                            break;

                    }


                    pushFollow(FOLLOW_call_spec_in_create_function_body489);
                    call_spec();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:62:18: ^( BODY_MODE ( PIPELINED_VK )? ( declare_spec )* body )
                    {
                    match(input,BODY_MODE,FOLLOW_BODY_MODE_in_create_function_body510); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:62:30: ( PIPELINED_VK )?
                    int alt16=2;
                    int LA16_0 = input.LA(1);

                    if ( (LA16_0==PIPELINED_VK) ) {
                        alt16=1;
                    }
                    switch (alt16) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:62:30: PIPELINED_VK
                            {
                            match(input,PIPELINED_VK,FOLLOW_PIPELINED_VK_in_create_function_body512); 

                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:62:44: ( declare_spec )*
                    loop17:
                    do {
                        int alt17=2;
                        int LA17_0 = input.LA(1);

                        if ( (LA17_0==CREATE_FUNCTION||LA17_0==CREATE_PROCEDURE||LA17_0==CURSOR_DECLARE||LA17_0==EXCEPTION_DECLARE||LA17_0==PRAGMA_DECLARE||(LA17_0 >= RECORD_TYPE_DECLARE && LA17_0 <= RECORD_VAR_DECLARE)||(LA17_0 >= SUBTYPE_DECLARE && LA17_0 <= TABLE_VAR_DECLARE)||LA17_0==VARIABLE_DECLARE) ) {
                            alt17=1;
                        }


                        switch (alt17) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:62:44: declare_spec
                    	    {
                    	    pushFollow(FOLLOW_declare_spec_in_create_function_body515);
                    	    declare_spec();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop17;
                        }
                    } while (true);


                    pushFollow(FOLLOW_body_in_create_function_body518);
                    body();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "create_function_body"



    // $ANTLR start "parallel_enable_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:69:1: parallel_enable_clause : ^( PARALLEL_ENABLE_VK ( partition_by_clause )? ) ;
    public final void parallel_enable_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:70:5: ( ^( PARALLEL_ENABLE_VK ( partition_by_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:70:10: ^( PARALLEL_ENABLE_VK ( partition_by_clause )? )
            {
            match(input,PARALLEL_ENABLE_VK,FOLLOW_PARALLEL_ENABLE_VK_in_parallel_enable_clause566); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:70:31: ( partition_by_clause )?
                int alt19=2;
                int LA19_0 = input.LA(1);

                if ( (LA19_0==PARTITION_VK) ) {
                    alt19=1;
                }
                switch (alt19) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:70:31: partition_by_clause
                        {
                        pushFollow(FOLLOW_partition_by_clause_in_parallel_enable_clause568);
                        partition_by_clause();

                        state._fsp--;


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "parallel_enable_clause"



    // $ANTLR start "partition_by_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:73:1: partition_by_clause : ^( PARTITION_VK expression ( SQL92_RESERVED_ANY | ^( HASH_VK ^( COLUMNS ( column_name )+ ) ) | ^( RANGE_VK ^( COLUMNS ( column_name )+ ) ) ) ( streaming_clause )? ) ;
    public final void partition_by_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:74:5: ( ^( PARTITION_VK expression ( SQL92_RESERVED_ANY | ^( HASH_VK ^( COLUMNS ( column_name )+ ) ) | ^( RANGE_VK ^( COLUMNS ( column_name )+ ) ) ) ( streaming_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:74:10: ^( PARTITION_VK expression ( SQL92_RESERVED_ANY | ^( HASH_VK ^( COLUMNS ( column_name )+ ) ) | ^( RANGE_VK ^( COLUMNS ( column_name )+ ) ) ) ( streaming_clause )? )
            {
            match(input,PARTITION_VK,FOLLOW_PARTITION_VK_in_partition_by_clause591); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_partition_by_clause593);
            expression();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:75:13: ( SQL92_RESERVED_ANY | ^( HASH_VK ^( COLUMNS ( column_name )+ ) ) | ^( RANGE_VK ^( COLUMNS ( column_name )+ ) ) )
            int alt22=3;
            switch ( input.LA(1) ) {
            case SQL92_RESERVED_ANY:
                {
                alt22=1;
                }
                break;
            case HASH_VK:
                {
                alt22=2;
                }
                break;
            case RANGE_VK:
                {
                alt22=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 22, 0, input);

                throw nvae;

            }

            switch (alt22) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:75:18: SQL92_RESERVED_ANY
                    {
                    match(input,SQL92_RESERVED_ANY,FOLLOW_SQL92_RESERVED_ANY_in_partition_by_clause613); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:76:18: ^( HASH_VK ^( COLUMNS ( column_name )+ ) )
                    {
                    match(input,HASH_VK,FOLLOW_HASH_VK_in_partition_by_clause633); 

                    match(input, Token.DOWN, null); 
                    match(input,COLUMNS,FOLLOW_COLUMNS_in_partition_by_clause636); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:76:38: ( column_name )+
                    int cnt20=0;
                    loop20:
                    do {
                        int alt20=2;
                        int LA20_0 = input.LA(1);

                        if ( (LA20_0==COLUMN_NAME) ) {
                            alt20=1;
                        }


                        switch (alt20) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:76:38: column_name
                    	    {
                    	    pushFollow(FOLLOW_column_name_in_partition_by_clause638);
                    	    column_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt20 >= 1 ) break loop20;
                                EarlyExitException eee =
                                    new EarlyExitException(20, input);
                                throw eee;
                        }
                        cnt20++;
                    } while (true);


                    match(input, Token.UP, null); 


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:77:18: ^( RANGE_VK ^( COLUMNS ( column_name )+ ) )
                    {
                    match(input,RANGE_VK,FOLLOW_RANGE_VK_in_partition_by_clause661); 

                    match(input, Token.DOWN, null); 
                    match(input,COLUMNS,FOLLOW_COLUMNS_in_partition_by_clause664); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:77:39: ( column_name )+
                    int cnt21=0;
                    loop21:
                    do {
                        int alt21=2;
                        int LA21_0 = input.LA(1);

                        if ( (LA21_0==COLUMN_NAME) ) {
                            alt21=1;
                        }


                        switch (alt21) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:77:39: column_name
                    	    {
                    	    pushFollow(FOLLOW_column_name_in_partition_by_clause666);
                    	    column_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt21 >= 1 ) break loop21;
                                EarlyExitException eee =
                                    new EarlyExitException(21, input);
                                throw eee;
                        }
                        cnt21++;
                    } while (true);


                    match(input, Token.UP, null); 


                    match(input, Token.UP, null); 


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:79:13: ( streaming_clause )?
            int alt23=2;
            int LA23_0 = input.LA(1);

            if ( (LA23_0==STREAMING_CLAUSE) ) {
                alt23=1;
            }
            switch (alt23) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:79:13: streaming_clause
                    {
                    pushFollow(FOLLOW_streaming_clause_in_partition_by_clause698);
                    streaming_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "partition_by_clause"



    // $ANTLR start "result_cache_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:83:1: result_cache_clause : ^( RESULT_CACHE_VK ( relies_on_part )? ) ;
    public final void result_cache_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:84:5: ( ^( RESULT_CACHE_VK ( relies_on_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:84:10: ^( RESULT_CACHE_VK ( relies_on_part )? )
            {
            match(input,RESULT_CACHE_VK,FOLLOW_RESULT_CACHE_VK_in_result_cache_clause730); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:84:28: ( relies_on_part )?
                int alt24=2;
                int LA24_0 = input.LA(1);

                if ( (LA24_0==RELIES_ON_VK) ) {
                    alt24=1;
                }
                switch (alt24) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:84:28: relies_on_part
                        {
                        pushFollow(FOLLOW_relies_on_part_in_result_cache_clause732);
                        relies_on_part();

                        state._fsp--;


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "result_cache_clause"



    // $ANTLR start "relies_on_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:87:1: relies_on_part : ^( RELIES_ON_VK ( tableview_name )+ ) ;
    public final void relies_on_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:88:5: ( ^( RELIES_ON_VK ( tableview_name )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:88:10: ^( RELIES_ON_VK ( tableview_name )+ )
            {
            match(input,RELIES_ON_VK,FOLLOW_RELIES_ON_VK_in_relies_on_part755); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:88:25: ( tableview_name )+
            int cnt25=0;
            loop25:
            do {
                int alt25=2;
                int LA25_0 = input.LA(1);

                if ( (LA25_0==TABLEVIEW_NAME) ) {
                    alt25=1;
                }


                switch (alt25) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:88:25: tableview_name
            	    {
            	    pushFollow(FOLLOW_tableview_name_in_relies_on_part757);
            	    tableview_name();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt25 >= 1 ) break loop25;
                        EarlyExitException eee =
                            new EarlyExitException(25, input);
                        throw eee;
                }
                cnt25++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "relies_on_part"



    // $ANTLR start "streaming_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:91:1: streaming_clause : ^( STREAMING_CLAUSE ( SQL92_RESERVED_ORDER | CLUSTER_VK ) expression ^( COLUMNS ( column_name )+ ) ) ;
    public final void streaming_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:92:5: ( ^( STREAMING_CLAUSE ( SQL92_RESERVED_ORDER | CLUSTER_VK ) expression ^( COLUMNS ( column_name )+ ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:92:10: ^( STREAMING_CLAUSE ( SQL92_RESERVED_ORDER | CLUSTER_VK ) expression ^( COLUMNS ( column_name )+ ) )
            {
            match(input,STREAMING_CLAUSE,FOLLOW_STREAMING_CLAUSE_in_streaming_clause780); 

            match(input, Token.DOWN, null); 
            if ( input.LA(1)==SQL92_RESERVED_ORDER||input.LA(1)==CLUSTER_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            pushFollow(FOLLOW_expression_in_streaming_clause788);
            expression();

            state._fsp--;


            match(input,COLUMNS,FOLLOW_COLUMNS_in_streaming_clause791); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:92:84: ( column_name )+
            int cnt26=0;
            loop26:
            do {
                int alt26=2;
                int LA26_0 = input.LA(1);

                if ( (LA26_0==COLUMN_NAME) ) {
                    alt26=1;
                }


                switch (alt26) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:92:84: column_name
            	    {
            	    pushFollow(FOLLOW_column_name_in_streaming_clause793);
            	    column_name();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt26 >= 1 ) break loop26;
                        EarlyExitException eee =
                            new EarlyExitException(26, input);
                        throw eee;
                }
                cnt26++;
            } while (true);


            match(input, Token.UP, null); 


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "streaming_clause"



    // $ANTLR start "drop_package"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:99:1: drop_package : ^( DROP_PACKAGE package_name ( BODY_VK )? ) ;
    public final void drop_package() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:100:5: ( ^( DROP_PACKAGE package_name ( BODY_VK )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:100:10: ^( DROP_PACKAGE package_name ( BODY_VK )? )
            {
            match(input,DROP_PACKAGE,FOLLOW_DROP_PACKAGE_in_drop_package822); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_package_name_in_drop_package824);
            package_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:100:38: ( BODY_VK )?
            int alt27=2;
            int LA27_0 = input.LA(1);

            if ( (LA27_0==BODY_VK) ) {
                alt27=1;
            }
            switch (alt27) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:100:38: BODY_VK
                    {
                    match(input,BODY_VK,FOLLOW_BODY_VK_in_drop_package826); 

                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "drop_package"



    // $ANTLR start "alter_package"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:103:1: alter_package : ^( ALTER_PACKAGE package_name ( DEBUG_VK )? ( REUSE_VK )? ( PACKAGE_VK | BODY_VK | SPECIFICATION_VK )? ( compiler_parameters_clause )* ) ;
    public final void alter_package() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:104:5: ( ^( ALTER_PACKAGE package_name ( DEBUG_VK )? ( REUSE_VK )? ( PACKAGE_VK | BODY_VK | SPECIFICATION_VK )? ( compiler_parameters_clause )* ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:104:10: ^( ALTER_PACKAGE package_name ( DEBUG_VK )? ( REUSE_VK )? ( PACKAGE_VK | BODY_VK | SPECIFICATION_VK )? ( compiler_parameters_clause )* )
            {
            match(input,ALTER_PACKAGE,FOLLOW_ALTER_PACKAGE_in_alter_package849); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_package_name_in_alter_package851);
            package_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:104:39: ( DEBUG_VK )?
            int alt28=2;
            int LA28_0 = input.LA(1);

            if ( (LA28_0==DEBUG_VK) ) {
                alt28=1;
            }
            switch (alt28) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:104:39: DEBUG_VK
                    {
                    match(input,DEBUG_VK,FOLLOW_DEBUG_VK_in_alter_package853); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:104:49: ( REUSE_VK )?
            int alt29=2;
            int LA29_0 = input.LA(1);

            if ( (LA29_0==REUSE_VK) ) {
                alt29=1;
            }
            switch (alt29) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:104:49: REUSE_VK
                    {
                    match(input,REUSE_VK,FOLLOW_REUSE_VK_in_alter_package856); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:105:17: ( PACKAGE_VK | BODY_VK | SPECIFICATION_VK )?
            int alt30=2;
            int LA30_0 = input.LA(1);

            if ( (LA30_0==BODY_VK||LA30_0==PACKAGE_VK||LA30_0==SPECIFICATION_VK) ) {
                alt30=1;
            }
            switch (alt30) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                    {
                    if ( input.LA(1)==BODY_VK||input.LA(1)==PACKAGE_VK||input.LA(1)==SPECIFICATION_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:105:56: ( compiler_parameters_clause )*
            loop31:
            do {
                int alt31=2;
                int LA31_0 = input.LA(1);

                if ( (LA31_0==COMPILER_PARAMETER) ) {
                    alt31=1;
                }


                switch (alt31) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:105:56: compiler_parameters_clause
            	    {
            	    pushFollow(FOLLOW_compiler_parameters_clause_in_alter_package885);
            	    compiler_parameters_clause();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop31;
                }
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "alter_package"



    // $ANTLR start "create_package"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:108:1: create_package : ( ^( CREATE_PACKAGE_SPEC ( REPLACE_VK )? ( package_name )+ ( invoker_rights_clause )? ( package_obj_spec )* ) | ^( CREATE_PACKAGE_BODY ( REPLACE_VK )? ( package_name )+ ( package_obj_body )* ( seq_of_statements )? ) );
    public final void create_package() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:109:5: ( ^( CREATE_PACKAGE_SPEC ( REPLACE_VK )? ( package_name )+ ( invoker_rights_clause )? ( package_obj_spec )* ) | ^( CREATE_PACKAGE_BODY ( REPLACE_VK )? ( package_name )+ ( package_obj_body )* ( seq_of_statements )? ) )
            int alt40=2;
            int LA40_0 = input.LA(1);

            if ( (LA40_0==CREATE_PACKAGE_SPEC) ) {
                alt40=1;
            }
            else if ( (LA40_0==CREATE_PACKAGE_BODY) ) {
                alt40=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 40, 0, input);

                throw nvae;

            }
            switch (alt40) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:109:10: ^( CREATE_PACKAGE_SPEC ( REPLACE_VK )? ( package_name )+ ( invoker_rights_clause )? ( package_obj_spec )* )
                    {
                    match(input,CREATE_PACKAGE_SPEC,FOLLOW_CREATE_PACKAGE_SPEC_in_create_package908); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:109:32: ( REPLACE_VK )?
                    int alt32=2;
                    int LA32_0 = input.LA(1);

                    if ( (LA32_0==REPLACE_VK) ) {
                        alt32=1;
                    }
                    switch (alt32) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:109:32: REPLACE_VK
                            {
                            match(input,REPLACE_VK,FOLLOW_REPLACE_VK_in_create_package910); 

                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:109:44: ( package_name )+
                    int cnt33=0;
                    loop33:
                    do {
                        int alt33=2;
                        int LA33_0 = input.LA(1);

                        if ( (LA33_0==PACKAGE_NAME) ) {
                            alt33=1;
                        }


                        switch (alt33) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:109:44: package_name
                    	    {
                    	    pushFollow(FOLLOW_package_name_in_create_package913);
                    	    package_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt33 >= 1 ) break loop33;
                                EarlyExitException eee =
                                    new EarlyExitException(33, input);
                                throw eee;
                        }
                        cnt33++;
                    } while (true);


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:109:58: ( invoker_rights_clause )?
                    int alt34=2;
                    int LA34_0 = input.LA(1);

                    if ( (LA34_0==AUTHID_VK) ) {
                        alt34=1;
                    }
                    switch (alt34) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:109:58: invoker_rights_clause
                            {
                            pushFollow(FOLLOW_invoker_rights_clause_in_create_package916);
                            invoker_rights_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:109:81: ( package_obj_spec )*
                    loop35:
                    do {
                        int alt35=2;
                        int LA35_0 = input.LA(1);

                        if ( (LA35_0==CURSOR_DECLARE||LA35_0==EXCEPTION_DECLARE||LA35_0==FUNCTION_SPEC||(LA35_0 >= PROCEDURE_SPEC && LA35_0 <= RECORD_VAR_DECLARE)||(LA35_0 >= SUBTYPE_DECLARE && LA35_0 <= TABLE_VAR_DECLARE)||LA35_0==VARIABLE_DECLARE) ) {
                            alt35=1;
                        }


                        switch (alt35) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:109:81: package_obj_spec
                    	    {
                    	    pushFollow(FOLLOW_package_obj_spec_in_create_package919);
                    	    package_obj_spec();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop35;
                        }
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:110:10: ^( CREATE_PACKAGE_BODY ( REPLACE_VK )? ( package_name )+ ( package_obj_body )* ( seq_of_statements )? )
                    {
                    match(input,CREATE_PACKAGE_BODY,FOLLOW_CREATE_PACKAGE_BODY_in_create_package934); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:110:32: ( REPLACE_VK )?
                    int alt36=2;
                    int LA36_0 = input.LA(1);

                    if ( (LA36_0==REPLACE_VK) ) {
                        alt36=1;
                    }
                    switch (alt36) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:110:32: REPLACE_VK
                            {
                            match(input,REPLACE_VK,FOLLOW_REPLACE_VK_in_create_package936); 

                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:110:44: ( package_name )+
                    int cnt37=0;
                    loop37:
                    do {
                        int alt37=2;
                        int LA37_0 = input.LA(1);

                        if ( (LA37_0==PACKAGE_NAME) ) {
                            alt37=1;
                        }


                        switch (alt37) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:110:44: package_name
                    	    {
                    	    pushFollow(FOLLOW_package_name_in_create_package939);
                    	    package_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt37 >= 1 ) break loop37;
                                EarlyExitException eee =
                                    new EarlyExitException(37, input);
                                throw eee;
                        }
                        cnt37++;
                    } while (true);


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:110:58: ( package_obj_body )*
                    loop38:
                    do {
                        int alt38=2;
                        int LA38_0 = input.LA(1);

                        if ( (LA38_0==CREATE_FUNCTION||LA38_0==CREATE_PROCEDURE||LA38_0==CURSOR_DECLARE||LA38_0==EXCEPTION_DECLARE||(LA38_0 >= RECORD_TYPE_DECLARE && LA38_0 <= RECORD_VAR_DECLARE)||(LA38_0 >= SUBTYPE_DECLARE && LA38_0 <= TABLE_VAR_DECLARE)||LA38_0==VARIABLE_DECLARE) ) {
                            alt38=1;
                        }


                        switch (alt38) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:110:58: package_obj_body
                    	    {
                    	    pushFollow(FOLLOW_package_obj_body_in_create_package942);
                    	    package_obj_body();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop38;
                        }
                    } while (true);


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:110:76: ( seq_of_statements )?
                    int alt39=2;
                    int LA39_0 = input.LA(1);

                    if ( (LA39_0==STATEMENTS) ) {
                        alt39=1;
                    }
                    switch (alt39) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:110:76: seq_of_statements
                            {
                            pushFollow(FOLLOW_seq_of_statements_in_create_package945);
                            seq_of_statements();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "create_package"



    // $ANTLR start "package_obj_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:115:1: package_obj_spec : ( variable_declaration | subtype_declaration | cursor_declaration | exception_declaration | record_declaration | table_declaration | procedure_spec | function_spec );
    public final void package_obj_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:116:5: ( variable_declaration | subtype_declaration | cursor_declaration | exception_declaration | record_declaration | table_declaration | procedure_spec | function_spec )
            int alt41=8;
            switch ( input.LA(1) ) {
            case VARIABLE_DECLARE:
                {
                alt41=1;
                }
                break;
            case SUBTYPE_DECLARE:
                {
                alt41=2;
                }
                break;
            case CURSOR_DECLARE:
                {
                alt41=3;
                }
                break;
            case EXCEPTION_DECLARE:
                {
                alt41=4;
                }
                break;
            case RECORD_TYPE_DECLARE:
            case RECORD_VAR_DECLARE:
                {
                alt41=5;
                }
                break;
            case TABLE_TYPE_DECLARE:
            case TABLE_VAR_DECLARE:
                {
                alt41=6;
                }
                break;
            case PROCEDURE_SPEC:
                {
                alt41=7;
                }
                break;
            case FUNCTION_SPEC:
                {
                alt41=8;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 41, 0, input);

                throw nvae;

            }

            switch (alt41) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:116:10: variable_declaration
                    {
                    pushFollow(FOLLOW_variable_declaration_in_package_obj_spec969);
                    variable_declaration();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:117:11: subtype_declaration
                    {
                    pushFollow(FOLLOW_subtype_declaration_in_package_obj_spec981);
                    subtype_declaration();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:118:11: cursor_declaration
                    {
                    pushFollow(FOLLOW_cursor_declaration_in_package_obj_spec993);
                    cursor_declaration();

                    state._fsp--;


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:119:11: exception_declaration
                    {
                    pushFollow(FOLLOW_exception_declaration_in_package_obj_spec1005);
                    exception_declaration();

                    state._fsp--;


                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:120:11: record_declaration
                    {
                    pushFollow(FOLLOW_record_declaration_in_package_obj_spec1017);
                    record_declaration();

                    state._fsp--;


                    }
                    break;
                case 6 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:121:11: table_declaration
                    {
                    pushFollow(FOLLOW_table_declaration_in_package_obj_spec1029);
                    table_declaration();

                    state._fsp--;


                    }
                    break;
                case 7 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:122:11: procedure_spec
                    {
                    pushFollow(FOLLOW_procedure_spec_in_package_obj_spec1041);
                    procedure_spec();

                    state._fsp--;


                    }
                    break;
                case 8 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:123:11: function_spec
                    {
                    pushFollow(FOLLOW_function_spec_in_package_obj_spec1053);
                    function_spec();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "package_obj_spec"



    // $ANTLR start "procedure_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:126:1: procedure_spec : ^( PROCEDURE_SPEC procedure_name ^( PARAMETERS ( parameter )* ) ( ^( CALL_MODE call_spec ) )? ) ;
    public final void procedure_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:127:5: ( ^( PROCEDURE_SPEC procedure_name ^( PARAMETERS ( parameter )* ) ( ^( CALL_MODE call_spec ) )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:127:11: ^( PROCEDURE_SPEC procedure_name ^( PARAMETERS ( parameter )* ) ( ^( CALL_MODE call_spec ) )? )
            {
            match(input,PROCEDURE_SPEC,FOLLOW_PROCEDURE_SPEC_in_procedure_spec1075); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_procedure_name_in_procedure_spec1077);
            procedure_name();

            state._fsp--;


            match(input,PARAMETERS,FOLLOW_PARAMETERS_in_procedure_spec1080); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:127:56: ( parameter )*
                loop42:
                do {
                    int alt42=2;
                    int LA42_0 = input.LA(1);

                    if ( (LA42_0==PARAMETER) ) {
                        alt42=1;
                    }


                    switch (alt42) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:127:56: parameter
                	    {
                	    pushFollow(FOLLOW_parameter_in_procedure_spec1082);
                	    parameter();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop42;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:128:13: ( ^( CALL_MODE call_spec ) )?
            int alt43=2;
            int LA43_0 = input.LA(1);

            if ( (LA43_0==CALL_MODE) ) {
                alt43=1;
            }
            switch (alt43) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:128:14: ^( CALL_MODE call_spec )
                    {
                    match(input,CALL_MODE,FOLLOW_CALL_MODE_in_procedure_spec1100); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_call_spec_in_procedure_spec1102);
                    call_spec();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "procedure_spec"



    // $ANTLR start "function_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:132:1: function_spec : ^( FUNCTION_SPEC function_name ( type_spec | SELF_VK ) ^( PARAMETERS ( parameter )* ) ( ^( CALL_MODE call_spec ) | ^( EXTERNAL_VK expression ) )? ) ;
    public final void function_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:133:5: ( ^( FUNCTION_SPEC function_name ( type_spec | SELF_VK ) ^( PARAMETERS ( parameter )* ) ( ^( CALL_MODE call_spec ) | ^( EXTERNAL_VK expression ) )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:133:10: ^( FUNCTION_SPEC function_name ( type_spec | SELF_VK ) ^( PARAMETERS ( parameter )* ) ( ^( CALL_MODE call_spec ) | ^( EXTERNAL_VK expression ) )? )
            {
            match(input,FUNCTION_SPEC,FOLLOW_FUNCTION_SPEC_in_function_spec1133); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_function_name_in_function_spec1135);
            function_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:133:40: ( type_spec | SELF_VK )
            int alt44=2;
            int LA44_0 = input.LA(1);

            if ( (LA44_0==CUSTOM_TYPE||LA44_0==INTERVAL_DATATYPE||LA44_0==NATIVE_DATATYPE) ) {
                alt44=1;
            }
            else if ( (LA44_0==SELF_VK) ) {
                alt44=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 44, 0, input);

                throw nvae;

            }
            switch (alt44) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:133:41: type_spec
                    {
                    pushFollow(FOLLOW_type_spec_in_function_spec1138);
                    type_spec();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:133:51: SELF_VK
                    {
                    match(input,SELF_VK,FOLLOW_SELF_VK_in_function_spec1140); 

                    }
                    break;

            }


            match(input,PARAMETERS,FOLLOW_PARAMETERS_in_function_spec1144); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:133:73: ( parameter )*
                loop45:
                do {
                    int alt45=2;
                    int LA45_0 = input.LA(1);

                    if ( (LA45_0==PARAMETER) ) {
                        alt45=1;
                    }


                    switch (alt45) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:133:73: parameter
                	    {
                	    pushFollow(FOLLOW_parameter_in_function_spec1146);
                	    parameter();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop45;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:134:13: ( ^( CALL_MODE call_spec ) | ^( EXTERNAL_VK expression ) )?
            int alt46=3;
            int LA46_0 = input.LA(1);

            if ( (LA46_0==CALL_MODE) ) {
                alt46=1;
            }
            else if ( (LA46_0==EXTERNAL_VK) ) {
                alt46=2;
            }
            switch (alt46) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:134:18: ^( CALL_MODE call_spec )
                    {
                    match(input,CALL_MODE,FOLLOW_CALL_MODE_in_function_spec1168); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_call_spec_in_function_spec1170);
                    call_spec();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:135:18: ^( EXTERNAL_VK expression )
                    {
                    match(input,EXTERNAL_VK,FOLLOW_EXTERNAL_VK_in_function_spec1191); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_function_spec1193);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "function_spec"



    // $ANTLR start "package_obj_body"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:140:1: package_obj_body : ( variable_declaration | subtype_declaration | cursor_declaration | exception_declaration | record_declaration | table_declaration | create_procedure_body | create_function_body );
    public final void package_obj_body() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:141:5: ( variable_declaration | subtype_declaration | cursor_declaration | exception_declaration | record_declaration | table_declaration | create_procedure_body | create_function_body )
            int alt47=8;
            switch ( input.LA(1) ) {
            case VARIABLE_DECLARE:
                {
                alt47=1;
                }
                break;
            case SUBTYPE_DECLARE:
                {
                alt47=2;
                }
                break;
            case CURSOR_DECLARE:
                {
                alt47=3;
                }
                break;
            case EXCEPTION_DECLARE:
                {
                alt47=4;
                }
                break;
            case RECORD_TYPE_DECLARE:
            case RECORD_VAR_DECLARE:
                {
                alt47=5;
                }
                break;
            case TABLE_TYPE_DECLARE:
            case TABLE_VAR_DECLARE:
                {
                alt47=6;
                }
                break;
            case CREATE_PROCEDURE:
                {
                alt47=7;
                }
                break;
            case CREATE_FUNCTION:
                {
                alt47=8;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 47, 0, input);

                throw nvae;

            }

            switch (alt47) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:141:11: variable_declaration
                    {
                    pushFollow(FOLLOW_variable_declaration_in_package_obj_body1240);
                    variable_declaration();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:142:11: subtype_declaration
                    {
                    pushFollow(FOLLOW_subtype_declaration_in_package_obj_body1253);
                    subtype_declaration();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:143:11: cursor_declaration
                    {
                    pushFollow(FOLLOW_cursor_declaration_in_package_obj_body1266);
                    cursor_declaration();

                    state._fsp--;


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:144:11: exception_declaration
                    {
                    pushFollow(FOLLOW_exception_declaration_in_package_obj_body1279);
                    exception_declaration();

                    state._fsp--;


                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:145:11: record_declaration
                    {
                    pushFollow(FOLLOW_record_declaration_in_package_obj_body1292);
                    record_declaration();

                    state._fsp--;


                    }
                    break;
                case 6 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:146:11: table_declaration
                    {
                    pushFollow(FOLLOW_table_declaration_in_package_obj_body1304);
                    table_declaration();

                    state._fsp--;


                    }
                    break;
                case 7 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:147:11: create_procedure_body
                    {
                    pushFollow(FOLLOW_create_procedure_body_in_package_obj_body1316);
                    create_procedure_body();

                    state._fsp--;


                    }
                    break;
                case 8 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:148:11: create_function_body
                    {
                    pushFollow(FOLLOW_create_function_body_in_package_obj_body1328);
                    create_function_body();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "package_obj_body"



    // $ANTLR start "drop_procedure"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:157:1: drop_procedure : ^( DROP_PROCEDURE procedure_name ) ;
    public final void drop_procedure() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:158:5: ( ^( DROP_PROCEDURE procedure_name ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:158:10: ^( DROP_PROCEDURE procedure_name )
            {
            match(input,DROP_PROCEDURE,FOLLOW_DROP_PROCEDURE_in_drop_procedure1356); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_procedure_name_in_drop_procedure1358);
            procedure_name();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "drop_procedure"



    // $ANTLR start "alter_procedure"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:161:1: alter_procedure : ^( ALTER_PROCEDURE procedure_name ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* ) ;
    public final void alter_procedure() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:162:5: ( ^( ALTER_PROCEDURE procedure_name ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:162:10: ^( ALTER_PROCEDURE procedure_name ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* )
            {
            match(input,ALTER_PROCEDURE,FOLLOW_ALTER_PROCEDURE_in_alter_procedure1380); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_procedure_name_in_alter_procedure1382);
            procedure_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:162:43: ( DEBUG_VK )?
            int alt48=2;
            int LA48_0 = input.LA(1);

            if ( (LA48_0==DEBUG_VK) ) {
                alt48=1;
            }
            switch (alt48) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:162:43: DEBUG_VK
                    {
                    match(input,DEBUG_VK,FOLLOW_DEBUG_VK_in_alter_procedure1384); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:162:53: ( REUSE_VK )?
            int alt49=2;
            int LA49_0 = input.LA(1);

            if ( (LA49_0==REUSE_VK) ) {
                alt49=1;
            }
            switch (alt49) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:162:53: REUSE_VK
                    {
                    match(input,REUSE_VK,FOLLOW_REUSE_VK_in_alter_procedure1387); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:162:63: ( compiler_parameters_clause )*
            loop50:
            do {
                int alt50=2;
                int LA50_0 = input.LA(1);

                if ( (LA50_0==COMPILER_PARAMETER) ) {
                    alt50=1;
                }


                switch (alt50) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:162:63: compiler_parameters_clause
            	    {
            	    pushFollow(FOLLOW_compiler_parameters_clause_in_alter_procedure1390);
            	    compiler_parameters_clause();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop50;
                }
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "alter_procedure"



    // $ANTLR start "create_procedure_body"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:165:1: create_procedure_body : ^( CREATE_PROCEDURE ( REPLACE_VK )? procedure_name ^( PARAMETERS ( parameter )* ) ( invoker_rights_clause )? ( EXTERNAL_VK | ^( CALL_MODE call_spec ) | ^( BODY_MODE ( declare_spec )* body ) ) ) ;
    public final void create_procedure_body() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:166:5: ( ^( CREATE_PROCEDURE ( REPLACE_VK )? procedure_name ^( PARAMETERS ( parameter )* ) ( invoker_rights_clause )? ( EXTERNAL_VK | ^( CALL_MODE call_spec ) | ^( BODY_MODE ( declare_spec )* body ) ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:166:10: ^( CREATE_PROCEDURE ( REPLACE_VK )? procedure_name ^( PARAMETERS ( parameter )* ) ( invoker_rights_clause )? ( EXTERNAL_VK | ^( CALL_MODE call_spec ) | ^( BODY_MODE ( declare_spec )* body ) ) )
            {
            match(input,CREATE_PROCEDURE,FOLLOW_CREATE_PROCEDURE_in_create_procedure_body1413); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:166:29: ( REPLACE_VK )?
            int alt51=2;
            int LA51_0 = input.LA(1);

            if ( (LA51_0==REPLACE_VK) ) {
                alt51=1;
            }
            switch (alt51) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:166:29: REPLACE_VK
                    {
                    match(input,REPLACE_VK,FOLLOW_REPLACE_VK_in_create_procedure_body1415); 

                    }
                    break;

            }


            pushFollow(FOLLOW_procedure_name_in_create_procedure_body1418);
            procedure_name();

            state._fsp--;


            match(input,PARAMETERS,FOLLOW_PARAMETERS_in_create_procedure_body1421); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:166:69: ( parameter )*
                loop52:
                do {
                    int alt52=2;
                    int LA52_0 = input.LA(1);

                    if ( (LA52_0==PARAMETER) ) {
                        alt52=1;
                    }


                    switch (alt52) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:166:69: parameter
                	    {
                	    pushFollow(FOLLOW_parameter_in_create_procedure_body1423);
                	    parameter();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop52;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:166:81: ( invoker_rights_clause )?
            int alt53=2;
            int LA53_0 = input.LA(1);

            if ( (LA53_0==AUTHID_VK) ) {
                alt53=1;
            }
            switch (alt53) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:166:81: invoker_rights_clause
                    {
                    pushFollow(FOLLOW_invoker_rights_clause_in_create_procedure_body1427);
                    invoker_rights_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:167:13: ( EXTERNAL_VK | ^( CALL_MODE call_spec ) | ^( BODY_MODE ( declare_spec )* body ) )
            int alt55=3;
            switch ( input.LA(1) ) {
            case EXTERNAL_VK:
                {
                alt55=1;
                }
                break;
            case CALL_MODE:
                {
                alt55=2;
                }
                break;
            case BODY_MODE:
                {
                alt55=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 55, 0, input);

                throw nvae;

            }

            switch (alt55) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:167:18: EXTERNAL_VK
                    {
                    match(input,EXTERNAL_VK,FOLLOW_EXTERNAL_VK_in_create_procedure_body1447); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:168:18: ^( CALL_MODE call_spec )
                    {
                    match(input,CALL_MODE,FOLLOW_CALL_MODE_in_create_procedure_body1467); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_call_spec_in_create_procedure_body1469);
                    call_spec();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:169:18: ^( BODY_MODE ( declare_spec )* body )
                    {
                    match(input,BODY_MODE,FOLLOW_BODY_MODE_in_create_procedure_body1490); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:169:30: ( declare_spec )*
                    loop54:
                    do {
                        int alt54=2;
                        int LA54_0 = input.LA(1);

                        if ( (LA54_0==CREATE_FUNCTION||LA54_0==CREATE_PROCEDURE||LA54_0==CURSOR_DECLARE||LA54_0==EXCEPTION_DECLARE||LA54_0==PRAGMA_DECLARE||(LA54_0 >= RECORD_TYPE_DECLARE && LA54_0 <= RECORD_VAR_DECLARE)||(LA54_0 >= SUBTYPE_DECLARE && LA54_0 <= TABLE_VAR_DECLARE)||LA54_0==VARIABLE_DECLARE) ) {
                            alt54=1;
                        }


                        switch (alt54) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:169:30: declare_spec
                    	    {
                    	    pushFollow(FOLLOW_declare_spec_in_create_procedure_body1492);
                    	    declare_spec();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop54;
                        }
                    } while (true);


                    pushFollow(FOLLOW_body_in_create_procedure_body1495);
                    body();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "create_procedure_body"



    // $ANTLR start "drop_trigger"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:178:1: drop_trigger : ^( DROP_TRIGGER trigger_name ) ;
    public final void drop_trigger() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:179:5: ( ^( DROP_TRIGGER trigger_name ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:179:10: ^( DROP_TRIGGER trigger_name )
            {
            match(input,DROP_TRIGGER,FOLLOW_DROP_TRIGGER_in_drop_trigger1545); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_trigger_name_in_drop_trigger1547);
            trigger_name();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "drop_trigger"



    // $ANTLR start "alter_trigger"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:182:1: alter_trigger : ^( ALTER_TRIGGER trigger_name ( ( ENABLE_VK | DISABLE_VK ) | ^( RENAME_VK trigger_name ) | ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* ) ) ;
    public final void alter_trigger() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:183:5: ( ^( ALTER_TRIGGER trigger_name ( ( ENABLE_VK | DISABLE_VK ) | ^( RENAME_VK trigger_name ) | ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:183:10: ^( ALTER_TRIGGER trigger_name ( ( ENABLE_VK | DISABLE_VK ) | ^( RENAME_VK trigger_name ) | ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* ) )
            {
            match(input,ALTER_TRIGGER,FOLLOW_ALTER_TRIGGER_in_alter_trigger1569); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_trigger_name_in_alter_trigger1571);
            trigger_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:184:13: ( ( ENABLE_VK | DISABLE_VK ) | ^( RENAME_VK trigger_name ) | ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* )
            int alt59=3;
            switch ( input.LA(1) ) {
            case DISABLE_VK:
            case ENABLE_VK:
                {
                alt59=1;
                }
                break;
            case RENAME_VK:
                {
                alt59=2;
                }
                break;
            case UP:
            case DEBUG_VK:
            case REUSE_VK:
            case COMPILER_PARAMETER:
                {
                alt59=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 59, 0, input);

                throw nvae;

            }

            switch (alt59) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:184:18: ( ENABLE_VK | DISABLE_VK )
                    {
                    if ( input.LA(1)==DISABLE_VK||input.LA(1)==ENABLE_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:185:18: ^( RENAME_VK trigger_name )
                    {
                    match(input,RENAME_VK,FOLLOW_RENAME_VK_in_alter_trigger1615); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_trigger_name_in_alter_trigger1617);
                    trigger_name();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:186:18: ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )*
                    {
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:186:18: ( DEBUG_VK )?
                    int alt56=2;
                    int LA56_0 = input.LA(1);

                    if ( (LA56_0==DEBUG_VK) ) {
                        alt56=1;
                    }
                    switch (alt56) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:186:18: DEBUG_VK
                            {
                            match(input,DEBUG_VK,FOLLOW_DEBUG_VK_in_alter_trigger1637); 

                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:186:28: ( REUSE_VK )?
                    int alt57=2;
                    int LA57_0 = input.LA(1);

                    if ( (LA57_0==REUSE_VK) ) {
                        alt57=1;
                    }
                    switch (alt57) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:186:28: REUSE_VK
                            {
                            match(input,REUSE_VK,FOLLOW_REUSE_VK_in_alter_trigger1640); 

                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:186:38: ( compiler_parameters_clause )*
                    loop58:
                    do {
                        int alt58=2;
                        int LA58_0 = input.LA(1);

                        if ( (LA58_0==COMPILER_PARAMETER) ) {
                            alt58=1;
                        }


                        switch (alt58) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:186:38: compiler_parameters_clause
                    	    {
                    	    pushFollow(FOLLOW_compiler_parameters_clause_in_alter_trigger1643);
                    	    compiler_parameters_clause();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop58;
                        }
                    } while (true);


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "alter_trigger"



    // $ANTLR start "create_trigger"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:191:1: create_trigger : ^( CREATE_TRIGGER ( REPLACE_VK )? trigger_name ( simple_dml_trigger )? ( compound_dml_trigger )? ( non_dml_trigger )? ( trigger_follows_clause )? ( ENABLE_VK | DISABLE_VK )? ( trigger_when_clause )? trigger_body ) ;
    public final void create_trigger() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:192:5: ( ^( CREATE_TRIGGER ( REPLACE_VK )? trigger_name ( simple_dml_trigger )? ( compound_dml_trigger )? ( non_dml_trigger )? ( trigger_follows_clause )? ( ENABLE_VK | DISABLE_VK )? ( trigger_when_clause )? trigger_body ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:192:10: ^( CREATE_TRIGGER ( REPLACE_VK )? trigger_name ( simple_dml_trigger )? ( compound_dml_trigger )? ( non_dml_trigger )? ( trigger_follows_clause )? ( ENABLE_VK | DISABLE_VK )? ( trigger_when_clause )? trigger_body )
            {
            match(input,CREATE_TRIGGER,FOLLOW_CREATE_TRIGGER_in_create_trigger1689); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:192:27: ( REPLACE_VK )?
            int alt60=2;
            int LA60_0 = input.LA(1);

            if ( (LA60_0==REPLACE_VK) ) {
                alt60=1;
            }
            switch (alt60) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:192:27: REPLACE_VK
                    {
                    match(input,REPLACE_VK,FOLLOW_REPLACE_VK_in_create_trigger1691); 

                    }
                    break;

            }


            pushFollow(FOLLOW_trigger_name_in_create_trigger1694);
            trigger_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:193:13: ( simple_dml_trigger )?
            int alt61=2;
            int LA61_0 = input.LA(1);

            if ( (LA61_0==SIMPLE_DML) ) {
                alt61=1;
            }
            switch (alt61) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:193:13: simple_dml_trigger
                    {
                    pushFollow(FOLLOW_simple_dml_trigger_in_create_trigger1710);
                    simple_dml_trigger();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:193:33: ( compound_dml_trigger )?
            int alt62=2;
            int LA62_0 = input.LA(1);

            if ( (LA62_0==COMPOUND_DML) ) {
                alt62=1;
            }
            switch (alt62) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:193:33: compound_dml_trigger
                    {
                    pushFollow(FOLLOW_compound_dml_trigger_in_create_trigger1713);
                    compound_dml_trigger();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:193:55: ( non_dml_trigger )?
            int alt63=2;
            int LA63_0 = input.LA(1);

            if ( (LA63_0==NON_DML) ) {
                alt63=1;
            }
            switch (alt63) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:193:55: non_dml_trigger
                    {
                    pushFollow(FOLLOW_non_dml_trigger_in_create_trigger1716);
                    non_dml_trigger();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:194:13: ( trigger_follows_clause )?
            int alt64=2;
            int LA64_0 = input.LA(1);

            if ( (LA64_0==FOLLOWS_VK) ) {
                alt64=1;
            }
            switch (alt64) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:194:13: trigger_follows_clause
                    {
                    pushFollow(FOLLOW_trigger_follows_clause_in_create_trigger1731);
                    trigger_follows_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:194:37: ( ENABLE_VK | DISABLE_VK )?
            int alt65=2;
            int LA65_0 = input.LA(1);

            if ( (LA65_0==DISABLE_VK||LA65_0==ENABLE_VK) ) {
                alt65=1;
            }
            switch (alt65) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                    {
                    if ( input.LA(1)==DISABLE_VK||input.LA(1)==ENABLE_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:194:61: ( trigger_when_clause )?
            int alt66=2;
            int LA66_0 = input.LA(1);

            if ( (LA66_0==SQL92_RESERVED_WHEN) ) {
                alt66=1;
            }
            switch (alt66) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:194:61: trigger_when_clause
                    {
                    pushFollow(FOLLOW_trigger_when_clause_in_create_trigger1741);
                    trigger_when_clause();

                    state._fsp--;


                    }
                    break;

            }


            pushFollow(FOLLOW_trigger_body_in_create_trigger1744);
            trigger_body();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "create_trigger"



    // $ANTLR start "trigger_follows_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:197:1: trigger_follows_clause : ^( FOLLOWS_VK ( trigger_name )+ ) ;
    public final void trigger_follows_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:198:5: ( ^( FOLLOWS_VK ( trigger_name )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:198:10: ^( FOLLOWS_VK ( trigger_name )+ )
            {
            match(input,FOLLOWS_VK,FOLLOW_FOLLOWS_VK_in_trigger_follows_clause1766); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:198:23: ( trigger_name )+
            int cnt67=0;
            loop67:
            do {
                int alt67=2;
                int LA67_0 = input.LA(1);

                if ( (LA67_0==TRIGGER_NAME) ) {
                    alt67=1;
                }


                switch (alt67) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:198:23: trigger_name
            	    {
            	    pushFollow(FOLLOW_trigger_name_in_trigger_follows_clause1768);
            	    trigger_name();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt67 >= 1 ) break loop67;
                        EarlyExitException eee =
                            new EarlyExitException(67, input);
                        throw eee;
                }
                cnt67++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "trigger_follows_clause"



    // $ANTLR start "trigger_when_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:201:1: trigger_when_clause : ^( SQL92_RESERVED_WHEN expression ) ;
    public final void trigger_when_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:202:5: ( ^( SQL92_RESERVED_WHEN expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:202:10: ^( SQL92_RESERVED_WHEN expression )
            {
            match(input,SQL92_RESERVED_WHEN,FOLLOW_SQL92_RESERVED_WHEN_in_trigger_when_clause1791); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_trigger_when_clause1793);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "trigger_when_clause"



    // $ANTLR start "simple_dml_trigger"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:206:1: simple_dml_trigger : ^( SIMPLE_DML ( BEFORE_VK | AFTER_VK | INSTEAD_VK ) ( FOR_EACH_ROW )? ( referencing_clause )? dml_event_clause ) ;
    public final void simple_dml_trigger() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:207:5: ( ^( SIMPLE_DML ( BEFORE_VK | AFTER_VK | INSTEAD_VK ) ( FOR_EACH_ROW )? ( referencing_clause )? dml_event_clause ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:207:10: ^( SIMPLE_DML ( BEFORE_VK | AFTER_VK | INSTEAD_VK ) ( FOR_EACH_ROW )? ( referencing_clause )? dml_event_clause )
            {
            match(input,SIMPLE_DML,FOLLOW_SIMPLE_DML_in_simple_dml_trigger1816); 

            match(input, Token.DOWN, null); 
            if ( input.LA(1)==AFTER_VK||input.LA(1)==BEFORE_VK||input.LA(1)==INSTEAD_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:207:55: ( FOR_EACH_ROW )?
            int alt68=2;
            int LA68_0 = input.LA(1);

            if ( (LA68_0==FOR_EACH_ROW) ) {
                alt68=1;
            }
            switch (alt68) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:207:55: FOR_EACH_ROW
                    {
                    match(input,FOR_EACH_ROW,FOLLOW_FOR_EACH_ROW_in_simple_dml_trigger1826); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:207:69: ( referencing_clause )?
            int alt69=2;
            int LA69_0 = input.LA(1);

            if ( (LA69_0==REFERENCING_VK) ) {
                alt69=1;
            }
            switch (alt69) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:207:69: referencing_clause
                    {
                    pushFollow(FOLLOW_referencing_clause_in_simple_dml_trigger1829);
                    referencing_clause();

                    state._fsp--;


                    }
                    break;

            }


            pushFollow(FOLLOW_dml_event_clause_in_simple_dml_trigger1832);
            dml_event_clause();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "simple_dml_trigger"



    // $ANTLR start "compound_dml_trigger"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:210:1: compound_dml_trigger : ^( COMPOUND_DML ( referencing_clause )? dml_event_clause ) ;
    public final void compound_dml_trigger() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:211:5: ( ^( COMPOUND_DML ( referencing_clause )? dml_event_clause ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:211:10: ^( COMPOUND_DML ( referencing_clause )? dml_event_clause )
            {
            match(input,COMPOUND_DML,FOLLOW_COMPOUND_DML_in_compound_dml_trigger1854); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:211:25: ( referencing_clause )?
            int alt70=2;
            int LA70_0 = input.LA(1);

            if ( (LA70_0==REFERENCING_VK) ) {
                alt70=1;
            }
            switch (alt70) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:211:25: referencing_clause
                    {
                    pushFollow(FOLLOW_referencing_clause_in_compound_dml_trigger1856);
                    referencing_clause();

                    state._fsp--;


                    }
                    break;

            }


            pushFollow(FOLLOW_dml_event_clause_in_compound_dml_trigger1859);
            dml_event_clause();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "compound_dml_trigger"



    // $ANTLR start "non_dml_trigger"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:214:1: non_dml_trigger : ^( NON_DML ( BEFORE_VK | AFTER_VK ) ( non_dml_event )+ ( DATABASE_VK | ( schema_name )? SCHEMA_VK ) ) ;
    public final void non_dml_trigger() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:215:5: ( ^( NON_DML ( BEFORE_VK | AFTER_VK ) ( non_dml_event )+ ( DATABASE_VK | ( schema_name )? SCHEMA_VK ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:215:10: ^( NON_DML ( BEFORE_VK | AFTER_VK ) ( non_dml_event )+ ( DATABASE_VK | ( schema_name )? SCHEMA_VK ) )
            {
            match(input,NON_DML,FOLLOW_NON_DML_in_non_dml_trigger1881); 

            match(input, Token.DOWN, null); 
            if ( input.LA(1)==AFTER_VK||input.LA(1)==BEFORE_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:215:41: ( non_dml_event )+
            int cnt71=0;
            loop71:
            do {
                int alt71=2;
                switch ( input.LA(1) ) {
                case DATABASE_VK:
                    {
                    int LA71_1 = input.LA(2);

                    if ( (LA71_1==SQL92_RESERVED_ALTER||LA71_1==SQL92_RESERVED_CREATE||LA71_1==SQL92_RESERVED_DROP||LA71_1==SQL92_RESERVED_GRANT||LA71_1==SQL92_RESERVED_REVOKE||LA71_1==ANALYZE_VK||LA71_1==ASSOCIATE_VK||LA71_1==AUDIT_VK||LA71_1==COMMENT_VK||LA71_1==DATABASE_VK||(LA71_1 >= DB_ROLE_CHANGE_VK && LA71_1 <= DDL_VK)||LA71_1==DISASSOCIATE_VK||LA71_1==FOLLOWS_VK||(LA71_1 >= LOGOFF_VK && LA71_1 <= LOGON_VK)||LA71_1==NOAUDIT_VK||LA71_1==RENAME_VK||(LA71_1 >= SCHEMA_NAME && LA71_1 <= SCHEMA_VK)||LA71_1==SERVERERROR_VK||LA71_1==SHUTDOWN_VK||LA71_1==STARTUP_VK||LA71_1==SUSPEND_VK||LA71_1==TRUNCATE_VK) ) {
                        alt71=1;
                    }


                    }
                    break;
                case SCHEMA_VK:
                    {
                    int LA71_3 = input.LA(2);

                    if ( (LA71_3==SQL92_RESERVED_ALTER||LA71_3==SQL92_RESERVED_CREATE||LA71_3==SQL92_RESERVED_DROP||LA71_3==SQL92_RESERVED_GRANT||LA71_3==SQL92_RESERVED_REVOKE||LA71_3==ANALYZE_VK||LA71_3==ASSOCIATE_VK||LA71_3==AUDIT_VK||LA71_3==COMMENT_VK||LA71_3==DATABASE_VK||(LA71_3 >= DB_ROLE_CHANGE_VK && LA71_3 <= DDL_VK)||LA71_3==DISASSOCIATE_VK||LA71_3==FOLLOWS_VK||(LA71_3 >= LOGOFF_VK && LA71_3 <= LOGON_VK)||LA71_3==NOAUDIT_VK||LA71_3==RENAME_VK||(LA71_3 >= SCHEMA_NAME && LA71_3 <= SCHEMA_VK)||LA71_3==SERVERERROR_VK||LA71_3==SHUTDOWN_VK||LA71_3==STARTUP_VK||LA71_3==SUSPEND_VK||LA71_3==TRUNCATE_VK) ) {
                        alt71=1;
                    }


                    }
                    break;
                case SQL92_RESERVED_ALTER:
                case SQL92_RESERVED_CREATE:
                case SQL92_RESERVED_DROP:
                case SQL92_RESERVED_GRANT:
                case SQL92_RESERVED_REVOKE:
                case ANALYZE_VK:
                case ASSOCIATE_VK:
                case AUDIT_VK:
                case COMMENT_VK:
                case DB_ROLE_CHANGE_VK:
                case DDL_VK:
                case DISASSOCIATE_VK:
                case FOLLOWS_VK:
                case LOGOFF_VK:
                case LOGON_VK:
                case NOAUDIT_VK:
                case RENAME_VK:
                case SERVERERROR_VK:
                case SHUTDOWN_VK:
                case STARTUP_VK:
                case SUSPEND_VK:
                case TRUNCATE_VK:
                    {
                    alt71=1;
                    }
                    break;

                }

                switch (alt71) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:215:41: non_dml_event
            	    {
            	    pushFollow(FOLLOW_non_dml_event_in_non_dml_trigger1889);
            	    non_dml_event();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt71 >= 1 ) break loop71;
                        EarlyExitException eee =
                            new EarlyExitException(71, input);
                        throw eee;
                }
                cnt71++;
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:215:56: ( DATABASE_VK | ( schema_name )? SCHEMA_VK )
            int alt73=2;
            int LA73_0 = input.LA(1);

            if ( (LA73_0==DATABASE_VK) ) {
                alt73=1;
            }
            else if ( ((LA73_0 >= SCHEMA_NAME && LA73_0 <= SCHEMA_VK)) ) {
                alt73=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 73, 0, input);

                throw nvae;

            }
            switch (alt73) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:215:57: DATABASE_VK
                    {
                    match(input,DATABASE_VK,FOLLOW_DATABASE_VK_in_non_dml_trigger1893); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:215:69: ( schema_name )? SCHEMA_VK
                    {
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:215:69: ( schema_name )?
                    int alt72=2;
                    int LA72_0 = input.LA(1);

                    if ( (LA72_0==SCHEMA_NAME) ) {
                        alt72=1;
                    }
                    switch (alt72) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:215:69: schema_name
                            {
                            pushFollow(FOLLOW_schema_name_in_non_dml_trigger1895);
                            schema_name();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input,SCHEMA_VK,FOLLOW_SCHEMA_VK_in_non_dml_trigger1898); 

                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "non_dml_trigger"



    // $ANTLR start "trigger_body"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:218:1: trigger_body : ( ^( COMPOUND_VK trigger_name ( declare_spec )* ( timing_point_section )+ ) | ^( CALL_VK routine_name ( function_argument )? ) | ^( BODY_MODE block ) );
    public final void trigger_body() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:219:5: ( ^( COMPOUND_VK trigger_name ( declare_spec )* ( timing_point_section )+ ) | ^( CALL_VK routine_name ( function_argument )? ) | ^( BODY_MODE block ) )
            int alt77=3;
            switch ( input.LA(1) ) {
            case COMPOUND_VK:
                {
                alt77=1;
                }
                break;
            case CALL_VK:
                {
                alt77=2;
                }
                break;
            case BODY_MODE:
                {
                alt77=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 77, 0, input);

                throw nvae;

            }

            switch (alt77) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:219:10: ^( COMPOUND_VK trigger_name ( declare_spec )* ( timing_point_section )+ )
                    {
                    match(input,COMPOUND_VK,FOLLOW_COMPOUND_VK_in_trigger_body1921); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_trigger_name_in_trigger_body1923);
                    trigger_name();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:219:37: ( declare_spec )*
                    loop74:
                    do {
                        int alt74=2;
                        int LA74_0 = input.LA(1);

                        if ( (LA74_0==CREATE_FUNCTION||LA74_0==CREATE_PROCEDURE||LA74_0==CURSOR_DECLARE||LA74_0==EXCEPTION_DECLARE||LA74_0==PRAGMA_DECLARE||(LA74_0 >= RECORD_TYPE_DECLARE && LA74_0 <= RECORD_VAR_DECLARE)||(LA74_0 >= SUBTYPE_DECLARE && LA74_0 <= TABLE_VAR_DECLARE)||LA74_0==VARIABLE_DECLARE) ) {
                            alt74=1;
                        }


                        switch (alt74) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:219:37: declare_spec
                    	    {
                    	    pushFollow(FOLLOW_declare_spec_in_trigger_body1925);
                    	    declare_spec();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop74;
                        }
                    } while (true);


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:219:51: ( timing_point_section )+
                    int cnt75=0;
                    loop75:
                    do {
                        int alt75=2;
                        int LA75_0 = input.LA(1);

                        if ( ((LA75_0 >= AFTER_EACH_ROW && LA75_0 <= AFTER_STATEMENT)||(LA75_0 >= BEFORE_EACH_ROW && LA75_0 <= BEFORE_STATEMENT)) ) {
                            alt75=1;
                        }


                        switch (alt75) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:219:51: timing_point_section
                    	    {
                    	    pushFollow(FOLLOW_timing_point_section_in_trigger_body1928);
                    	    timing_point_section();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt75 >= 1 ) break loop75;
                                EarlyExitException eee =
                                    new EarlyExitException(75, input);
                                throw eee;
                        }
                        cnt75++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:220:10: ^( CALL_VK routine_name ( function_argument )? )
                    {
                    match(input,CALL_VK,FOLLOW_CALL_VK_in_trigger_body1942); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_routine_name_in_trigger_body1944);
                    routine_name();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:220:33: ( function_argument )?
                    int alt76=2;
                    int LA76_0 = input.LA(1);

                    if ( (LA76_0==ARGUMENTS) ) {
                        alt76=1;
                    }
                    switch (alt76) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:220:33: function_argument
                            {
                            pushFollow(FOLLOW_function_argument_in_trigger_body1946);
                            function_argument();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:221:10: ^( BODY_MODE block )
                    {
                    match(input,BODY_MODE,FOLLOW_BODY_MODE_in_trigger_body1961); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_block_in_trigger_body1963);
                    block();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "trigger_body"



    // $ANTLR start "timing_point_section"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:224:1: timing_point_section : ( ^( BEFORE_STATEMENT block ) | ^( BEFORE_EACH_ROW block ) | ^( AFTER_STATEMENT block ) | ^( AFTER_EACH_ROW block ) );
    public final void timing_point_section() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:225:5: ( ^( BEFORE_STATEMENT block ) | ^( BEFORE_EACH_ROW block ) | ^( AFTER_STATEMENT block ) | ^( AFTER_EACH_ROW block ) )
            int alt78=4;
            switch ( input.LA(1) ) {
            case BEFORE_STATEMENT:
                {
                alt78=1;
                }
                break;
            case BEFORE_EACH_ROW:
                {
                alt78=2;
                }
                break;
            case AFTER_STATEMENT:
                {
                alt78=3;
                }
                break;
            case AFTER_EACH_ROW:
                {
                alt78=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 78, 0, input);

                throw nvae;

            }

            switch (alt78) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:225:10: ^( BEFORE_STATEMENT block )
                    {
                    match(input,BEFORE_STATEMENT,FOLLOW_BEFORE_STATEMENT_in_timing_point_section1985); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_block_in_timing_point_section1987);
                    block();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:226:10: ^( BEFORE_EACH_ROW block )
                    {
                    match(input,BEFORE_EACH_ROW,FOLLOW_BEFORE_EACH_ROW_in_timing_point_section2000); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_block_in_timing_point_section2002);
                    block();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:227:10: ^( AFTER_STATEMENT block )
                    {
                    match(input,AFTER_STATEMENT,FOLLOW_AFTER_STATEMENT_in_timing_point_section2015); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_block_in_timing_point_section2017);
                    block();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:228:10: ^( AFTER_EACH_ROW block )
                    {
                    match(input,AFTER_EACH_ROW,FOLLOW_AFTER_EACH_ROW_in_timing_point_section2030); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_block_in_timing_point_section2032);
                    block();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "timing_point_section"



    // $ANTLR start "non_dml_event"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:231:1: non_dml_event : ( SQL92_RESERVED_ALTER | ANALYZE_VK | ASSOCIATE_VK STATISTICS_VK | AUDIT_VK | COMMENT_VK | SQL92_RESERVED_CREATE | DISASSOCIATE_VK STATISTICS_VK | SQL92_RESERVED_DROP | SQL92_RESERVED_GRANT | NOAUDIT_VK | RENAME_VK | SQL92_RESERVED_REVOKE | TRUNCATE_VK | DDL_VK | STARTUP_VK | SHUTDOWN_VK | DB_ROLE_CHANGE_VK | LOGON_VK | LOGOFF_VK | SERVERERROR_VK | SUSPEND_VK | DATABASE_VK | SCHEMA_VK | FOLLOWS_VK );
    public final void non_dml_event() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:232:5: ( SQL92_RESERVED_ALTER | ANALYZE_VK | ASSOCIATE_VK STATISTICS_VK | AUDIT_VK | COMMENT_VK | SQL92_RESERVED_CREATE | DISASSOCIATE_VK STATISTICS_VK | SQL92_RESERVED_DROP | SQL92_RESERVED_GRANT | NOAUDIT_VK | RENAME_VK | SQL92_RESERVED_REVOKE | TRUNCATE_VK | DDL_VK | STARTUP_VK | SHUTDOWN_VK | DB_ROLE_CHANGE_VK | LOGON_VK | LOGOFF_VK | SERVERERROR_VK | SUSPEND_VK | DATABASE_VK | SCHEMA_VK | FOLLOWS_VK )
            int alt79=24;
            switch ( input.LA(1) ) {
            case SQL92_RESERVED_ALTER:
                {
                alt79=1;
                }
                break;
            case ANALYZE_VK:
                {
                alt79=2;
                }
                break;
            case ASSOCIATE_VK:
                {
                alt79=3;
                }
                break;
            case AUDIT_VK:
                {
                alt79=4;
                }
                break;
            case COMMENT_VK:
                {
                alt79=5;
                }
                break;
            case SQL92_RESERVED_CREATE:
                {
                alt79=6;
                }
                break;
            case DISASSOCIATE_VK:
                {
                alt79=7;
                }
                break;
            case SQL92_RESERVED_DROP:
                {
                alt79=8;
                }
                break;
            case SQL92_RESERVED_GRANT:
                {
                alt79=9;
                }
                break;
            case NOAUDIT_VK:
                {
                alt79=10;
                }
                break;
            case RENAME_VK:
                {
                alt79=11;
                }
                break;
            case SQL92_RESERVED_REVOKE:
                {
                alt79=12;
                }
                break;
            case TRUNCATE_VK:
                {
                alt79=13;
                }
                break;
            case DDL_VK:
                {
                alt79=14;
                }
                break;
            case STARTUP_VK:
                {
                alt79=15;
                }
                break;
            case SHUTDOWN_VK:
                {
                alt79=16;
                }
                break;
            case DB_ROLE_CHANGE_VK:
                {
                alt79=17;
                }
                break;
            case LOGON_VK:
                {
                alt79=18;
                }
                break;
            case LOGOFF_VK:
                {
                alt79=19;
                }
                break;
            case SERVERERROR_VK:
                {
                alt79=20;
                }
                break;
            case SUSPEND_VK:
                {
                alt79=21;
                }
                break;
            case DATABASE_VK:
                {
                alt79=22;
                }
                break;
            case SCHEMA_VK:
                {
                alt79=23;
                }
                break;
            case FOLLOWS_VK:
                {
                alt79=24;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 79, 0, input);

                throw nvae;

            }

            switch (alt79) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:232:10: SQL92_RESERVED_ALTER
                    {
                    match(input,SQL92_RESERVED_ALTER,FOLLOW_SQL92_RESERVED_ALTER_in_non_dml_event2053); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:233:10: ANALYZE_VK
                    {
                    match(input,ANALYZE_VK,FOLLOW_ANALYZE_VK_in_non_dml_event2064); 

                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:234:10: ASSOCIATE_VK STATISTICS_VK
                    {
                    match(input,ASSOCIATE_VK,FOLLOW_ASSOCIATE_VK_in_non_dml_event2075); 

                    match(input,STATISTICS_VK,FOLLOW_STATISTICS_VK_in_non_dml_event2077); 

                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:235:10: AUDIT_VK
                    {
                    match(input,AUDIT_VK,FOLLOW_AUDIT_VK_in_non_dml_event2088); 

                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:236:10: COMMENT_VK
                    {
                    match(input,COMMENT_VK,FOLLOW_COMMENT_VK_in_non_dml_event2099); 

                    }
                    break;
                case 6 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:237:10: SQL92_RESERVED_CREATE
                    {
                    match(input,SQL92_RESERVED_CREATE,FOLLOW_SQL92_RESERVED_CREATE_in_non_dml_event2110); 

                    }
                    break;
                case 7 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:238:10: DISASSOCIATE_VK STATISTICS_VK
                    {
                    match(input,DISASSOCIATE_VK,FOLLOW_DISASSOCIATE_VK_in_non_dml_event2121); 

                    match(input,STATISTICS_VK,FOLLOW_STATISTICS_VK_in_non_dml_event2123); 

                    }
                    break;
                case 8 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:239:10: SQL92_RESERVED_DROP
                    {
                    match(input,SQL92_RESERVED_DROP,FOLLOW_SQL92_RESERVED_DROP_in_non_dml_event2134); 

                    }
                    break;
                case 9 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:240:10: SQL92_RESERVED_GRANT
                    {
                    match(input,SQL92_RESERVED_GRANT,FOLLOW_SQL92_RESERVED_GRANT_in_non_dml_event2145); 

                    }
                    break;
                case 10 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:241:10: NOAUDIT_VK
                    {
                    match(input,NOAUDIT_VK,FOLLOW_NOAUDIT_VK_in_non_dml_event2156); 

                    }
                    break;
                case 11 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:242:10: RENAME_VK
                    {
                    match(input,RENAME_VK,FOLLOW_RENAME_VK_in_non_dml_event2167); 

                    }
                    break;
                case 12 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:243:10: SQL92_RESERVED_REVOKE
                    {
                    match(input,SQL92_RESERVED_REVOKE,FOLLOW_SQL92_RESERVED_REVOKE_in_non_dml_event2178); 

                    }
                    break;
                case 13 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:244:10: TRUNCATE_VK
                    {
                    match(input,TRUNCATE_VK,FOLLOW_TRUNCATE_VK_in_non_dml_event2189); 

                    }
                    break;
                case 14 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:245:10: DDL_VK
                    {
                    match(input,DDL_VK,FOLLOW_DDL_VK_in_non_dml_event2200); 

                    }
                    break;
                case 15 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:246:10: STARTUP_VK
                    {
                    match(input,STARTUP_VK,FOLLOW_STARTUP_VK_in_non_dml_event2211); 

                    }
                    break;
                case 16 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:247:10: SHUTDOWN_VK
                    {
                    match(input,SHUTDOWN_VK,FOLLOW_SHUTDOWN_VK_in_non_dml_event2222); 

                    }
                    break;
                case 17 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:248:10: DB_ROLE_CHANGE_VK
                    {
                    match(input,DB_ROLE_CHANGE_VK,FOLLOW_DB_ROLE_CHANGE_VK_in_non_dml_event2233); 

                    }
                    break;
                case 18 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:249:10: LOGON_VK
                    {
                    match(input,LOGON_VK,FOLLOW_LOGON_VK_in_non_dml_event2244); 

                    }
                    break;
                case 19 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:250:10: LOGOFF_VK
                    {
                    match(input,LOGOFF_VK,FOLLOW_LOGOFF_VK_in_non_dml_event2255); 

                    }
                    break;
                case 20 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:251:10: SERVERERROR_VK
                    {
                    match(input,SERVERERROR_VK,FOLLOW_SERVERERROR_VK_in_non_dml_event2266); 

                    }
                    break;
                case 21 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:252:10: SUSPEND_VK
                    {
                    match(input,SUSPEND_VK,FOLLOW_SUSPEND_VK_in_non_dml_event2277); 

                    }
                    break;
                case 22 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:253:10: DATABASE_VK
                    {
                    match(input,DATABASE_VK,FOLLOW_DATABASE_VK_in_non_dml_event2288); 

                    }
                    break;
                case 23 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:254:10: SCHEMA_VK
                    {
                    match(input,SCHEMA_VK,FOLLOW_SCHEMA_VK_in_non_dml_event2299); 

                    }
                    break;
                case 24 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:255:10: FOLLOWS_VK
                    {
                    match(input,FOLLOWS_VK,FOLLOW_FOLLOWS_VK_in_non_dml_event2310); 

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "non_dml_event"



    // $ANTLR start "dml_event_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:258:1: dml_event_clause : ^( DML_EVENT ( dml_event_element )+ ^( SQL92_RESERVED_ON tableview_name ( dml_event_nested_clause )? ) ) ;
    public final void dml_event_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:259:5: ( ^( DML_EVENT ( dml_event_element )+ ^( SQL92_RESERVED_ON tableview_name ( dml_event_nested_clause )? ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:259:10: ^( DML_EVENT ( dml_event_element )+ ^( SQL92_RESERVED_ON tableview_name ( dml_event_nested_clause )? ) )
            {
            match(input,DML_EVENT,FOLLOW_DML_EVENT_in_dml_event_clause2331); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:259:22: ( dml_event_element )+
            int cnt80=0;
            loop80:
            do {
                int alt80=2;
                int LA80_0 = input.LA(1);

                if ( (LA80_0==DML_EVENT_ELEMENT) ) {
                    alt80=1;
                }


                switch (alt80) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:259:22: dml_event_element
            	    {
            	    pushFollow(FOLLOW_dml_event_element_in_dml_event_clause2333);
            	    dml_event_element();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt80 >= 1 ) break loop80;
                        EarlyExitException eee =
                            new EarlyExitException(80, input);
                        throw eee;
                }
                cnt80++;
            } while (true);


            match(input,SQL92_RESERVED_ON,FOLLOW_SQL92_RESERVED_ON_in_dml_event_clause2337); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_tableview_name_in_dml_event_clause2339);
            tableview_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:259:76: ( dml_event_nested_clause )?
            int alt81=2;
            int LA81_0 = input.LA(1);

            if ( (LA81_0==NESTED_VK) ) {
                alt81=1;
            }
            switch (alt81) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:259:76: dml_event_nested_clause
                    {
                    pushFollow(FOLLOW_dml_event_nested_clause_in_dml_event_clause2341);
                    dml_event_nested_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "dml_event_clause"



    // $ANTLR start "dml_event_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:262:1: dml_event_element : ^( DML_EVENT_ELEMENT ( SQL92_RESERVED_DELETE | SQL92_RESERVED_INSERT | SQL92_RESERVED_UPDATE ) ^( COLUMNS ( column_name )* ) ) ;
    public final void dml_event_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:263:5: ( ^( DML_EVENT_ELEMENT ( SQL92_RESERVED_DELETE | SQL92_RESERVED_INSERT | SQL92_RESERVED_UPDATE ) ^( COLUMNS ( column_name )* ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:263:10: ^( DML_EVENT_ELEMENT ( SQL92_RESERVED_DELETE | SQL92_RESERVED_INSERT | SQL92_RESERVED_UPDATE ) ^( COLUMNS ( column_name )* ) )
            {
            match(input,DML_EVENT_ELEMENT,FOLLOW_DML_EVENT_ELEMENT_in_dml_event_element2367); 

            match(input, Token.DOWN, null); 
            if ( input.LA(1)==SQL92_RESERVED_DELETE||input.LA(1)==SQL92_RESERVED_INSERT||input.LA(1)==SQL92_RESERVED_UPDATE ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input,COLUMNS,FOLLOW_COLUMNS_in_dml_event_element2378); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:263:108: ( column_name )*
                loop82:
                do {
                    int alt82=2;
                    int LA82_0 = input.LA(1);

                    if ( (LA82_0==COLUMN_NAME) ) {
                        alt82=1;
                    }


                    switch (alt82) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:263:108: column_name
                	    {
                	    pushFollow(FOLLOW_column_name_in_dml_event_element2380);
                	    column_name();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop82;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "dml_event_element"



    // $ANTLR start "dml_event_nested_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:266:1: dml_event_nested_clause : ^( NESTED_VK tableview_name ) ;
    public final void dml_event_nested_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:267:5: ( ^( NESTED_VK tableview_name ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:267:10: ^( NESTED_VK tableview_name )
            {
            match(input,NESTED_VK,FOLLOW_NESTED_VK_in_dml_event_nested_clause2404); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_tableview_name_in_dml_event_nested_clause2406);
            tableview_name();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "dml_event_nested_clause"



    // $ANTLR start "referencing_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:270:1: referencing_clause : ^( REFERENCING_VK ( referencing_element )+ ) ;
    public final void referencing_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:271:5: ( ^( REFERENCING_VK ( referencing_element )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:271:10: ^( REFERENCING_VK ( referencing_element )+ )
            {
            match(input,REFERENCING_VK,FOLLOW_REFERENCING_VK_in_referencing_clause2428); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:271:27: ( referencing_element )+
            int cnt83=0;
            loop83:
            do {
                int alt83=2;
                int LA83_0 = input.LA(1);

                if ( (LA83_0==NEW_VK||LA83_0==OLD_VK||LA83_0==PARENT_VK) ) {
                    alt83=1;
                }


                switch (alt83) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:271:27: referencing_element
            	    {
            	    pushFollow(FOLLOW_referencing_element_in_referencing_clause2430);
            	    referencing_element();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt83 >= 1 ) break loop83;
                        EarlyExitException eee =
                            new EarlyExitException(83, input);
                        throw eee;
                }
                cnt83++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "referencing_clause"



    // $ANTLR start "referencing_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:274:1: referencing_element : ^( ( NEW_VK | OLD_VK | PARENT_VK ) alias ) ;
    public final void referencing_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:275:5: ( ^( ( NEW_VK | OLD_VK | PARENT_VK ) alias ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:275:10: ^( ( NEW_VK | OLD_VK | PARENT_VK ) alias )
            {
            if ( input.LA(1)==NEW_VK||input.LA(1)==OLD_VK||input.LA(1)==PARENT_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_alias_in_referencing_element2461);
            alias();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "referencing_element"



    // $ANTLR start "drop_type"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:283:1: drop_type : ^( DROP_TYPE type_name ( BODY_VK )? ( FORCE_VK )? ( VALIDATE_VK )? ) ;
    public final void drop_type() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:284:5: ( ^( DROP_TYPE type_name ( BODY_VK )? ( FORCE_VK )? ( VALIDATE_VK )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:284:10: ^( DROP_TYPE type_name ( BODY_VK )? ( FORCE_VK )? ( VALIDATE_VK )? )
            {
            match(input,DROP_TYPE,FOLLOW_DROP_TYPE_in_drop_type2488); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_type_name_in_drop_type2490);
            type_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:284:32: ( BODY_VK )?
            int alt84=2;
            int LA84_0 = input.LA(1);

            if ( (LA84_0==BODY_VK) ) {
                alt84=1;
            }
            switch (alt84) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:284:32: BODY_VK
                    {
                    match(input,BODY_VK,FOLLOW_BODY_VK_in_drop_type2492); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:284:41: ( FORCE_VK )?
            int alt85=2;
            int LA85_0 = input.LA(1);

            if ( (LA85_0==FORCE_VK) ) {
                alt85=1;
            }
            switch (alt85) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:284:41: FORCE_VK
                    {
                    match(input,FORCE_VK,FOLLOW_FORCE_VK_in_drop_type2495); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:284:51: ( VALIDATE_VK )?
            int alt86=2;
            int LA86_0 = input.LA(1);

            if ( (LA86_0==VALIDATE_VK) ) {
                alt86=1;
            }
            switch (alt86) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:284:51: VALIDATE_VK
                    {
                    match(input,VALIDATE_VK,FOLLOW_VALIDATE_VK_in_drop_type2498); 

                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "drop_type"



    // $ANTLR start "alter_type"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:287:1: alter_type : ^( ALTER_TYPE type_name ( ^( REPLACE_VK ^( OBJECT_MEMBERS ( element_spec )+ ) ( invoker_rights_clause )? ) | ^( ALTER_ATTRIBUTE ( ADD_VK | MODIFY_VK | SQL92_RESERVED_DROP ) ^( ATTRIBUTES ( attribute_definition )+ ) ) | ^( ALTER_METHOD ( alter_method_element )+ ) | alter_collection_clauses | modifier_clause | ^( COMPILE_VK ( SPECIFICATION_VK | BODY_VK )? ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* ) ) ( dependent_handling_clause )? ) ;
    public final void alter_type() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:288:5: ( ^( ALTER_TYPE type_name ( ^( REPLACE_VK ^( OBJECT_MEMBERS ( element_spec )+ ) ( invoker_rights_clause )? ) | ^( ALTER_ATTRIBUTE ( ADD_VK | MODIFY_VK | SQL92_RESERVED_DROP ) ^( ATTRIBUTES ( attribute_definition )+ ) ) | ^( ALTER_METHOD ( alter_method_element )+ ) | alter_collection_clauses | modifier_clause | ^( COMPILE_VK ( SPECIFICATION_VK | BODY_VK )? ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* ) ) ( dependent_handling_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:288:10: ^( ALTER_TYPE type_name ( ^( REPLACE_VK ^( OBJECT_MEMBERS ( element_spec )+ ) ( invoker_rights_clause )? ) | ^( ALTER_ATTRIBUTE ( ADD_VK | MODIFY_VK | SQL92_RESERVED_DROP ) ^( ATTRIBUTES ( attribute_definition )+ ) ) | ^( ALTER_METHOD ( alter_method_element )+ ) | alter_collection_clauses | modifier_clause | ^( COMPILE_VK ( SPECIFICATION_VK | BODY_VK )? ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* ) ) ( dependent_handling_clause )? )
            {
            match(input,ALTER_TYPE,FOLLOW_ALTER_TYPE_in_alter_type2521); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_type_name_in_alter_type2523);
            type_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:289:13: ( ^( REPLACE_VK ^( OBJECT_MEMBERS ( element_spec )+ ) ( invoker_rights_clause )? ) | ^( ALTER_ATTRIBUTE ( ADD_VK | MODIFY_VK | SQL92_RESERVED_DROP ) ^( ATTRIBUTES ( attribute_definition )+ ) ) | ^( ALTER_METHOD ( alter_method_element )+ ) | alter_collection_clauses | modifier_clause | ^( COMPILE_VK ( SPECIFICATION_VK | BODY_VK )? ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* ) )
            int alt95=6;
            switch ( input.LA(1) ) {
            case REPLACE_VK:
                {
                alt95=1;
                }
                break;
            case ALTER_ATTRIBUTE:
                {
                alt95=2;
                }
                break;
            case ALTER_METHOD:
                {
                alt95=3;
                }
                break;
            case ALTER_COLLECTION:
                {
                alt95=4;
                }
                break;
            case MODIFIER:
                {
                alt95=5;
                }
                break;
            case COMPILE_VK:
                {
                alt95=6;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 95, 0, input);

                throw nvae;

            }

            switch (alt95) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:289:18: ^( REPLACE_VK ^( OBJECT_MEMBERS ( element_spec )+ ) ( invoker_rights_clause )? )
                    {
                    match(input,REPLACE_VK,FOLLOW_REPLACE_VK_in_alter_type2544); 

                    match(input, Token.DOWN, null); 
                    match(input,OBJECT_MEMBERS,FOLLOW_OBJECT_MEMBERS_in_alter_type2547); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:289:48: ( element_spec )+
                    int cnt87=0;
                    loop87:
                    do {
                        int alt87=2;
                        int LA87_0 = input.LA(1);

                        if ( (LA87_0==ELEMENT_SPEC) ) {
                            alt87=1;
                        }


                        switch (alt87) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:289:48: element_spec
                    	    {
                    	    pushFollow(FOLLOW_element_spec_in_alter_type2549);
                    	    element_spec();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt87 >= 1 ) break loop87;
                                EarlyExitException eee =
                                    new EarlyExitException(87, input);
                                throw eee;
                        }
                        cnt87++;
                    } while (true);


                    match(input, Token.UP, null); 


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:289:63: ( invoker_rights_clause )?
                    int alt88=2;
                    int LA88_0 = input.LA(1);

                    if ( (LA88_0==AUTHID_VK) ) {
                        alt88=1;
                    }
                    switch (alt88) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:289:63: invoker_rights_clause
                            {
                            pushFollow(FOLLOW_invoker_rights_clause_in_alter_type2553);
                            invoker_rights_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:290:18: ^( ALTER_ATTRIBUTE ( ADD_VK | MODIFY_VK | SQL92_RESERVED_DROP ) ^( ATTRIBUTES ( attribute_definition )+ ) )
                    {
                    match(input,ALTER_ATTRIBUTE,FOLLOW_ALTER_ATTRIBUTE_in_alter_type2575); 

                    match(input, Token.DOWN, null); 
                    if ( input.LA(1)==SQL92_RESERVED_DROP||input.LA(1)==ADD_VK||input.LA(1)==MODIFY_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input,ATTRIBUTES,FOLLOW_ATTRIBUTES_in_alter_type2586); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:290:88: ( attribute_definition )+
                    int cnt89=0;
                    loop89:
                    do {
                        int alt89=2;
                        int LA89_0 = input.LA(1);

                        if ( (LA89_0==ATTRIBUTE) ) {
                            alt89=1;
                        }


                        switch (alt89) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:290:88: attribute_definition
                    	    {
                    	    pushFollow(FOLLOW_attribute_definition_in_alter_type2588);
                    	    attribute_definition();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt89 >= 1 ) break loop89;
                                EarlyExitException eee =
                                    new EarlyExitException(89, input);
                                throw eee;
                        }
                        cnt89++;
                    } while (true);


                    match(input, Token.UP, null); 


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:291:18: ^( ALTER_METHOD ( alter_method_element )+ )
                    {
                    match(input,ALTER_METHOD,FOLLOW_ALTER_METHOD_in_alter_type2611); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:291:33: ( alter_method_element )+
                    int cnt90=0;
                    loop90:
                    do {
                        int alt90=2;
                        int LA90_0 = input.LA(1);

                        if ( (LA90_0==ALTER_METHOD_ELEMENT) ) {
                            alt90=1;
                        }


                        switch (alt90) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:291:33: alter_method_element
                    	    {
                    	    pushFollow(FOLLOW_alter_method_element_in_alter_type2613);
                    	    alter_method_element();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt90 >= 1 ) break loop90;
                                EarlyExitException eee =
                                    new EarlyExitException(90, input);
                                throw eee;
                        }
                        cnt90++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:292:18: alter_collection_clauses
                    {
                    pushFollow(FOLLOW_alter_collection_clauses_in_alter_type2634);
                    alter_collection_clauses();

                    state._fsp--;


                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:293:18: modifier_clause
                    {
                    pushFollow(FOLLOW_modifier_clause_in_alter_type2653);
                    modifier_clause();

                    state._fsp--;


                    }
                    break;
                case 6 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:294:18: ^( COMPILE_VK ( SPECIFICATION_VK | BODY_VK )? ( DEBUG_VK )? ( REUSE_VK )? ( compiler_parameters_clause )* )
                    {
                    match(input,COMPILE_VK,FOLLOW_COMPILE_VK_in_alter_type2673); 

                    if ( input.LA(1)==Token.DOWN ) {
                        match(input, Token.DOWN, null); 
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:294:31: ( SPECIFICATION_VK | BODY_VK )?
                        int alt91=2;
                        int LA91_0 = input.LA(1);

                        if ( (LA91_0==BODY_VK||LA91_0==SPECIFICATION_VK) ) {
                            alt91=1;
                        }
                        switch (alt91) {
                            case 1 :
                                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                                {
                                if ( input.LA(1)==BODY_VK||input.LA(1)==SPECIFICATION_VK ) {
                                    input.consume();
                                    state.errorRecovery=false;
                                }
                                else {
                                    MismatchedSetException mse = new MismatchedSetException(null,input);
                                    throw mse;
                                }


                                }
                                break;

                        }


                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:294:59: ( DEBUG_VK )?
                        int alt92=2;
                        int LA92_0 = input.LA(1);

                        if ( (LA92_0==DEBUG_VK) ) {
                            alt92=1;
                        }
                        switch (alt92) {
                            case 1 :
                                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:294:59: DEBUG_VK
                                {
                                match(input,DEBUG_VK,FOLLOW_DEBUG_VK_in_alter_type2682); 

                                }
                                break;

                        }


                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:294:69: ( REUSE_VK )?
                        int alt93=2;
                        int LA93_0 = input.LA(1);

                        if ( (LA93_0==REUSE_VK) ) {
                            alt93=1;
                        }
                        switch (alt93) {
                            case 1 :
                                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:294:69: REUSE_VK
                                {
                                match(input,REUSE_VK,FOLLOW_REUSE_VK_in_alter_type2685); 

                                }
                                break;

                        }


                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:294:79: ( compiler_parameters_clause )*
                        loop94:
                        do {
                            int alt94=2;
                            int LA94_0 = input.LA(1);

                            if ( (LA94_0==COMPILER_PARAMETER) ) {
                                alt94=1;
                            }


                            switch (alt94) {
                        	case 1 :
                        	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:294:79: compiler_parameters_clause
                        	    {
                        	    pushFollow(FOLLOW_compiler_parameters_clause_in_alter_type2688);
                        	    compiler_parameters_clause();

                        	    state._fsp--;


                        	    }
                        	    break;

                        	default :
                        	    break loop94;
                            }
                        } while (true);


                        match(input, Token.UP, null); 
                    }


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:296:13: ( dependent_handling_clause )?
            int alt96=2;
            int LA96_0 = input.LA(1);

            if ( (LA96_0==DEPENDENT_HANDLING) ) {
                alt96=1;
            }
            switch (alt96) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:296:13: dependent_handling_clause
                    {
                    pushFollow(FOLLOW_dependent_handling_clause_in_alter_type2719);
                    dependent_handling_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "alter_type"



    // $ANTLR start "alter_method_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:302:1: alter_method_element : ^( ALTER_METHOD_ELEMENT ( ADD_VK | SQL92_RESERVED_DROP ) ( map_order_function_spec )? ( subprogram_spec )? ) ;
    public final void alter_method_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:303:5: ( ^( ALTER_METHOD_ELEMENT ( ADD_VK | SQL92_RESERVED_DROP ) ( map_order_function_spec )? ( subprogram_spec )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:303:10: ^( ALTER_METHOD_ELEMENT ( ADD_VK | SQL92_RESERVED_DROP ) ( map_order_function_spec )? ( subprogram_spec )? )
            {
            match(input,ALTER_METHOD_ELEMENT,FOLLOW_ALTER_METHOD_ELEMENT_in_alter_method_element2753); 

            match(input, Token.DOWN, null); 
            if ( input.LA(1)==SQL92_RESERVED_DROP||input.LA(1)==ADD_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:303:62: ( map_order_function_spec )?
            int alt97=2;
            int LA97_0 = input.LA(1);

            if ( (LA97_0==SQL92_RESERVED_ORDER||LA97_0==MAP_VK) ) {
                alt97=1;
            }
            switch (alt97) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:303:62: map_order_function_spec
                    {
                    pushFollow(FOLLOW_map_order_function_spec_in_alter_method_element2761);
                    map_order_function_spec();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:303:87: ( subprogram_spec )?
            int alt98=2;
            int LA98_0 = input.LA(1);

            if ( (LA98_0==MEMBER_VK||LA98_0==STATIC_VK) ) {
                alt98=1;
            }
            switch (alt98) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:303:87: subprogram_spec
                    {
                    pushFollow(FOLLOW_subprogram_spec_in_alter_method_element2764);
                    subprogram_spec();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "alter_method_element"



    // $ANTLR start "attribute_definition"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:306:1: attribute_definition : ^( ATTRIBUTE attribute_name ( type_spec )? ) ;
    public final void attribute_definition() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:307:5: ( ^( ATTRIBUTE attribute_name ( type_spec )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:307:10: ^( ATTRIBUTE attribute_name ( type_spec )? )
            {
            match(input,ATTRIBUTE,FOLLOW_ATTRIBUTE_in_attribute_definition2787); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_attribute_name_in_attribute_definition2789);
            attribute_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:307:37: ( type_spec )?
            int alt99=2;
            int LA99_0 = input.LA(1);

            if ( (LA99_0==CUSTOM_TYPE||LA99_0==INTERVAL_DATATYPE||LA99_0==NATIVE_DATATYPE) ) {
                alt99=1;
            }
            switch (alt99) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:307:37: type_spec
                    {
                    pushFollow(FOLLOW_type_spec_in_attribute_definition2791);
                    type_spec();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "attribute_definition"



    // $ANTLR start "alter_collection_clauses"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:310:1: alter_collection_clauses : ^( ALTER_COLLECTION ( ^( TYPE_VK type_spec ) | ^( LIMIT_VK expression ) ) ) ;
    public final void alter_collection_clauses() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:311:5: ( ^( ALTER_COLLECTION ( ^( TYPE_VK type_spec ) | ^( LIMIT_VK expression ) ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:311:10: ^( ALTER_COLLECTION ( ^( TYPE_VK type_spec ) | ^( LIMIT_VK expression ) ) )
            {
            match(input,ALTER_COLLECTION,FOLLOW_ALTER_COLLECTION_in_alter_collection_clauses2814); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:312:13: ( ^( TYPE_VK type_spec ) | ^( LIMIT_VK expression ) )
            int alt100=2;
            int LA100_0 = input.LA(1);

            if ( (LA100_0==TYPE_VK) ) {
                alt100=1;
            }
            else if ( (LA100_0==LIMIT_VK) ) {
                alt100=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 100, 0, input);

                throw nvae;

            }
            switch (alt100) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:312:18: ^( TYPE_VK type_spec )
                    {
                    match(input,TYPE_VK,FOLLOW_TYPE_VK_in_alter_collection_clauses2835); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_type_spec_in_alter_collection_clauses2837);
                    type_spec();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:313:18: ^( LIMIT_VK expression )
                    {
                    match(input,LIMIT_VK,FOLLOW_LIMIT_VK_in_alter_collection_clauses2858); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_alter_collection_clauses2860);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "alter_collection_clauses"



    // $ANTLR start "dependent_handling_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:318:1: dependent_handling_clause : ^( DEPENDENT_HANDLING ( INVALIDATE_VK | ^( CASCADE_VK ( CONVERT_VK | ( SQL92_RESERVED_NOT )? INCLUDING_VK )? ) ) ) ;
    public final void dependent_handling_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:319:5: ( ^( DEPENDENT_HANDLING ( INVALIDATE_VK | ^( CASCADE_VK ( CONVERT_VK | ( SQL92_RESERVED_NOT )? INCLUDING_VK )? ) ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:319:10: ^( DEPENDENT_HANDLING ( INVALIDATE_VK | ^( CASCADE_VK ( CONVERT_VK | ( SQL92_RESERVED_NOT )? INCLUDING_VK )? ) ) )
            {
            match(input,DEPENDENT_HANDLING,FOLLOW_DEPENDENT_HANDLING_in_dependent_handling_clause2907); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:320:13: ( INVALIDATE_VK | ^( CASCADE_VK ( CONVERT_VK | ( SQL92_RESERVED_NOT )? INCLUDING_VK )? ) )
            int alt103=2;
            int LA103_0 = input.LA(1);

            if ( (LA103_0==INVALIDATE_VK) ) {
                alt103=1;
            }
            else if ( (LA103_0==CASCADE_VK) ) {
                alt103=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 103, 0, input);

                throw nvae;

            }
            switch (alt103) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:320:18: INVALIDATE_VK
                    {
                    match(input,INVALIDATE_VK,FOLLOW_INVALIDATE_VK_in_dependent_handling_clause2927); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:321:18: ^( CASCADE_VK ( CONVERT_VK | ( SQL92_RESERVED_NOT )? INCLUDING_VK )? )
                    {
                    match(input,CASCADE_VK,FOLLOW_CASCADE_VK_in_dependent_handling_clause2947); 

                    if ( input.LA(1)==Token.DOWN ) {
                        match(input, Token.DOWN, null); 
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:322:21: ( CONVERT_VK | ( SQL92_RESERVED_NOT )? INCLUDING_VK )?
                        int alt102=3;
                        int LA102_0 = input.LA(1);

                        if ( (LA102_0==CONVERT_VK) ) {
                            alt102=1;
                        }
                        else if ( (LA102_0==SQL92_RESERVED_NOT||LA102_0==INCLUDING_VK) ) {
                            alt102=2;
                        }
                        switch (alt102) {
                            case 1 :
                                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:322:26: CONVERT_VK
                                {
                                match(input,CONVERT_VK,FOLLOW_CONVERT_VK_in_dependent_handling_clause2975); 

                                }
                                break;
                            case 2 :
                                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:323:26: ( SQL92_RESERVED_NOT )? INCLUDING_VK
                                {
                                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:323:26: ( SQL92_RESERVED_NOT )?
                                int alt101=2;
                                int LA101_0 = input.LA(1);

                                if ( (LA101_0==SQL92_RESERVED_NOT) ) {
                                    alt101=1;
                                }
                                switch (alt101) {
                                    case 1 :
                                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:323:26: SQL92_RESERVED_NOT
                                        {
                                        match(input,SQL92_RESERVED_NOT,FOLLOW_SQL92_RESERVED_NOT_in_dependent_handling_clause3002); 

                                        }
                                        break;

                                }


                                match(input,INCLUDING_VK,FOLLOW_INCLUDING_VK_in_dependent_handling_clause3005); 

                                }
                                break;

                        }


                        match(input, Token.UP, null); 
                    }


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "dependent_handling_clause"



    // $ANTLR start "dependent_exceptions_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:330:1: dependent_exceptions_part : ^( EXCEPTIONS_VK ( FORCE_VK )? tableview_name ) ;
    public final void dependent_exceptions_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:331:5: ( ^( EXCEPTIONS_VK ( FORCE_VK )? tableview_name ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:331:10: ^( EXCEPTIONS_VK ( FORCE_VK )? tableview_name )
            {
            match(input,EXCEPTIONS_VK,FOLLOW_EXCEPTIONS_VK_in_dependent_exceptions_part3091); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:331:26: ( FORCE_VK )?
            int alt104=2;
            int LA104_0 = input.LA(1);

            if ( (LA104_0==FORCE_VK) ) {
                alt104=1;
            }
            switch (alt104) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:331:26: FORCE_VK
                    {
                    match(input,FORCE_VK,FOLLOW_FORCE_VK_in_dependent_exceptions_part3093); 

                    }
                    break;

            }


            pushFollow(FOLLOW_tableview_name_in_dependent_exceptions_part3096);
            tableview_name();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "dependent_exceptions_part"



    // $ANTLR start "create_type"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:336:1: create_type : ( ^( CREATE_TYPE_BODY ( REPLACE_VK )? type_name ^( TYPE_BODY_ELEMENTS ( type_body_elements )+ ) ) | ^( CREATE_TYPE_SPEC ( REPLACE_VK )? type_name ( CHAR_STRING )? ( object_type_def )? ) );
    public final void create_type() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:337:5: ( ^( CREATE_TYPE_BODY ( REPLACE_VK )? type_name ^( TYPE_BODY_ELEMENTS ( type_body_elements )+ ) ) | ^( CREATE_TYPE_SPEC ( REPLACE_VK )? type_name ( CHAR_STRING )? ( object_type_def )? ) )
            int alt110=2;
            int LA110_0 = input.LA(1);

            if ( (LA110_0==CREATE_TYPE_BODY) ) {
                alt110=1;
            }
            else if ( (LA110_0==CREATE_TYPE_SPEC) ) {
                alt110=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 110, 0, input);

                throw nvae;

            }
            switch (alt110) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:337:10: ^( CREATE_TYPE_BODY ( REPLACE_VK )? type_name ^( TYPE_BODY_ELEMENTS ( type_body_elements )+ ) )
                    {
                    match(input,CREATE_TYPE_BODY,FOLLOW_CREATE_TYPE_BODY_in_create_type3120); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:337:29: ( REPLACE_VK )?
                    int alt105=2;
                    int LA105_0 = input.LA(1);

                    if ( (LA105_0==REPLACE_VK) ) {
                        alt105=1;
                    }
                    switch (alt105) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:337:29: REPLACE_VK
                            {
                            match(input,REPLACE_VK,FOLLOW_REPLACE_VK_in_create_type3122); 

                            }
                            break;

                    }


                    pushFollow(FOLLOW_type_name_in_create_type3125);
                    type_name();

                    state._fsp--;


                    match(input,TYPE_BODY_ELEMENTS,FOLLOW_TYPE_BODY_ELEMENTS_in_create_type3128); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:337:72: ( type_body_elements )+
                    int cnt106=0;
                    loop106:
                    do {
                        int alt106=2;
                        int LA106_0 = input.LA(1);

                        if ( (LA106_0==SQL92_RESERVED_ORDER||LA106_0==MAP_VK||LA106_0==MEMBER_VK||LA106_0==STATIC_VK) ) {
                            alt106=1;
                        }


                        switch (alt106) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:337:72: type_body_elements
                    	    {
                    	    pushFollow(FOLLOW_type_body_elements_in_create_type3130);
                    	    type_body_elements();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt106 >= 1 ) break loop106;
                                EarlyExitException eee =
                                    new EarlyExitException(106, input);
                                throw eee;
                        }
                        cnt106++;
                    } while (true);


                    match(input, Token.UP, null); 


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:338:10: ^( CREATE_TYPE_SPEC ( REPLACE_VK )? type_name ( CHAR_STRING )? ( object_type_def )? )
                    {
                    match(input,CREATE_TYPE_SPEC,FOLLOW_CREATE_TYPE_SPEC_in_create_type3145); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:338:29: ( REPLACE_VK )?
                    int alt107=2;
                    int LA107_0 = input.LA(1);

                    if ( (LA107_0==REPLACE_VK) ) {
                        alt107=1;
                    }
                    switch (alt107) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:338:29: REPLACE_VK
                            {
                            match(input,REPLACE_VK,FOLLOW_REPLACE_VK_in_create_type3147); 

                            }
                            break;

                    }


                    pushFollow(FOLLOW_type_name_in_create_type3150);
                    type_name();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:338:51: ( CHAR_STRING )?
                    int alt108=2;
                    int LA108_0 = input.LA(1);

                    if ( (LA108_0==CHAR_STRING) ) {
                        alt108=1;
                    }
                    switch (alt108) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:338:51: CHAR_STRING
                            {
                            match(input,CHAR_STRING,FOLLOW_CHAR_STRING_in_create_type3152); 

                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:338:64: ( object_type_def )?
                    int alt109=2;
                    int LA109_0 = input.LA(1);

                    if ( (LA109_0==OBJECT_TYPE_DEF) ) {
                        alt109=1;
                    }
                    switch (alt109) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:338:64: object_type_def
                            {
                            pushFollow(FOLLOW_object_type_def_in_create_type3155);
                            object_type_def();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "create_type"



    // $ANTLR start "object_type_def"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:341:1: object_type_def : ^( OBJECT_TYPE_DEF ( object_as_part | object_under_part ) ( invoker_rights_clause )? ( sqlj_object_type )? ( modifier_clause )* ^( OBJECT_MEMBERS ( element_spec )* ) ) ;
    public final void object_type_def() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:342:5: ( ^( OBJECT_TYPE_DEF ( object_as_part | object_under_part ) ( invoker_rights_clause )? ( sqlj_object_type )? ( modifier_clause )* ^( OBJECT_MEMBERS ( element_spec )* ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:342:10: ^( OBJECT_TYPE_DEF ( object_as_part | object_under_part ) ( invoker_rights_clause )? ( sqlj_object_type )? ( modifier_clause )* ^( OBJECT_MEMBERS ( element_spec )* ) )
            {
            match(input,OBJECT_TYPE_DEF,FOLLOW_OBJECT_TYPE_DEF_in_object_type_def3178); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:342:28: ( object_as_part | object_under_part )
            int alt111=2;
            int LA111_0 = input.LA(1);

            if ( (LA111_0==OBJECT_AS) ) {
                alt111=1;
            }
            else if ( (LA111_0==UNDER_VK) ) {
                alt111=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 111, 0, input);

                throw nvae;

            }
            switch (alt111) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:342:29: object_as_part
                    {
                    pushFollow(FOLLOW_object_as_part_in_object_type_def3181);
                    object_as_part();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:342:44: object_under_part
                    {
                    pushFollow(FOLLOW_object_under_part_in_object_type_def3183);
                    object_under_part();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:342:63: ( invoker_rights_clause )?
            int alt112=2;
            int LA112_0 = input.LA(1);

            if ( (LA112_0==AUTHID_VK) ) {
                alt112=1;
            }
            switch (alt112) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:342:63: invoker_rights_clause
                    {
                    pushFollow(FOLLOW_invoker_rights_clause_in_object_type_def3186);
                    invoker_rights_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:343:14: ( sqlj_object_type )?
            int alt113=2;
            int LA113_0 = input.LA(1);

            if ( (LA113_0==JAVA_VK) ) {
                alt113=1;
            }
            switch (alt113) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:343:14: sqlj_object_type
                    {
                    pushFollow(FOLLOW_sqlj_object_type_in_object_type_def3202);
                    sqlj_object_type();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:343:32: ( modifier_clause )*
            loop114:
            do {
                int alt114=2;
                int LA114_0 = input.LA(1);

                if ( (LA114_0==MODIFIER) ) {
                    alt114=1;
                }


                switch (alt114) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:343:32: modifier_clause
            	    {
            	    pushFollow(FOLLOW_modifier_clause_in_object_type_def3205);
            	    modifier_clause();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop114;
                }
            } while (true);


            match(input,OBJECT_MEMBERS,FOLLOW_OBJECT_MEMBERS_in_object_type_def3209); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:343:66: ( element_spec )*
                loop115:
                do {
                    int alt115=2;
                    int LA115_0 = input.LA(1);

                    if ( (LA115_0==ELEMENT_SPEC) ) {
                        alt115=1;
                    }


                    switch (alt115) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:343:66: element_spec
                	    {
                	    pushFollow(FOLLOW_element_spec_in_object_type_def3211);
                	    element_spec();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop115;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "object_type_def"



    // $ANTLR start "object_as_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:346:1: object_as_part : ^( OBJECT_AS ( OBJECT_VK | varray_type_def | nested_table_type_def ) ) ;
    public final void object_as_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:347:5: ( ^( OBJECT_AS ( OBJECT_VK | varray_type_def | nested_table_type_def ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:347:10: ^( OBJECT_AS ( OBJECT_VK | varray_type_def | nested_table_type_def ) )
            {
            match(input,OBJECT_AS,FOLLOW_OBJECT_AS_in_object_as_part3237); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:347:22: ( OBJECT_VK | varray_type_def | nested_table_type_def )
            int alt116=3;
            switch ( input.LA(1) ) {
            case OBJECT_VK:
                {
                alt116=1;
                }
                break;
            case SQL92_RESERVED_NULL:
            case VARR_ARRAY_DEF:
                {
                alt116=2;
                }
                break;
            case NESTED_TABLE_TYPE_DEF:
                {
                alt116=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 116, 0, input);

                throw nvae;

            }

            switch (alt116) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:347:23: OBJECT_VK
                    {
                    match(input,OBJECT_VK,FOLLOW_OBJECT_VK_in_object_as_part3240); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:347:33: varray_type_def
                    {
                    pushFollow(FOLLOW_varray_type_def_in_object_as_part3242);
                    varray_type_def();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:347:49: nested_table_type_def
                    {
                    pushFollow(FOLLOW_nested_table_type_def_in_object_as_part3244);
                    nested_table_type_def();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "object_as_part"



    // $ANTLR start "object_under_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:350:1: object_under_part : ^( UNDER_VK type_spec ) ;
    public final void object_under_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:351:5: ( ^( UNDER_VK type_spec ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:351:10: ^( UNDER_VK type_spec )
            {
            match(input,UNDER_VK,FOLLOW_UNDER_VK_in_object_under_part3267); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_type_spec_in_object_under_part3269);
            type_spec();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "object_under_part"



    // $ANTLR start "nested_table_type_def"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:354:1: nested_table_type_def : ^( NESTED_TABLE_TYPE_DEF type_spec ( SQL92_RESERVED_NULL )? ) ;
    public final void nested_table_type_def() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:355:5: ( ^( NESTED_TABLE_TYPE_DEF type_spec ( SQL92_RESERVED_NULL )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:355:10: ^( NESTED_TABLE_TYPE_DEF type_spec ( SQL92_RESERVED_NULL )? )
            {
            match(input,NESTED_TABLE_TYPE_DEF,FOLLOW_NESTED_TABLE_TYPE_DEF_in_nested_table_type_def3291); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_type_spec_in_nested_table_type_def3293);
            type_spec();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:355:44: ( SQL92_RESERVED_NULL )?
            int alt117=2;
            int LA117_0 = input.LA(1);

            if ( (LA117_0==SQL92_RESERVED_NULL) ) {
                alt117=1;
            }
            switch (alt117) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:355:44: SQL92_RESERVED_NULL
                    {
                    match(input,SQL92_RESERVED_NULL,FOLLOW_SQL92_RESERVED_NULL_in_nested_table_type_def3295); 

                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "nested_table_type_def"



    // $ANTLR start "sqlj_object_type"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:358:1: sqlj_object_type : ^( JAVA_VK expression ( SQLDATA_VK | CUSTOMDATUM_VK | ORADATA_VK ) ) ;
    public final void sqlj_object_type() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:359:5: ( ^( JAVA_VK expression ( SQLDATA_VK | CUSTOMDATUM_VK | ORADATA_VK ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:359:10: ^( JAVA_VK expression ( SQLDATA_VK | CUSTOMDATUM_VK | ORADATA_VK ) )
            {
            match(input,JAVA_VK,FOLLOW_JAVA_VK_in_sqlj_object_type3319); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_sqlj_object_type3321);
            expression();

            state._fsp--;


            if ( input.LA(1)==CUSTOMDATUM_VK||input.LA(1)==ORADATA_VK||input.LA(1)==SQLDATA_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "sqlj_object_type"



    // $ANTLR start "type_body_elements"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:362:1: type_body_elements : ( map_order_func_declaration | subprog_decl_in_type );
    public final void type_body_elements() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:363:5: ( map_order_func_declaration | subprog_decl_in_type )
            int alt118=2;
            int LA118_0 = input.LA(1);

            if ( (LA118_0==SQL92_RESERVED_ORDER||LA118_0==MAP_VK) ) {
                alt118=1;
            }
            else if ( (LA118_0==MEMBER_VK||LA118_0==STATIC_VK) ) {
                alt118=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 118, 0, input);

                throw nvae;

            }
            switch (alt118) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:363:10: map_order_func_declaration
                    {
                    pushFollow(FOLLOW_map_order_func_declaration_in_type_body_elements3350);
                    map_order_func_declaration();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:364:10: subprog_decl_in_type
                    {
                    pushFollow(FOLLOW_subprog_decl_in_type_in_type_body_elements3361);
                    subprog_decl_in_type();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "type_body_elements"



    // $ANTLR start "map_order_func_declaration"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:367:1: map_order_func_declaration : ^( ( MAP_VK | SQL92_RESERVED_ORDER ) create_function_body ) ;
    public final void map_order_func_declaration() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:368:5: ( ^( ( MAP_VK | SQL92_RESERVED_ORDER ) create_function_body ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:368:10: ^( ( MAP_VK | SQL92_RESERVED_ORDER ) create_function_body )
            {
            if ( input.LA(1)==SQL92_RESERVED_ORDER||input.LA(1)==MAP_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_create_function_body_in_map_order_func_declaration3388);
            create_function_body();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "map_order_func_declaration"



    // $ANTLR start "subprog_decl_in_type"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:371:1: subprog_decl_in_type : ^( ( MEMBER_VK | STATIC_VK ) ( create_procedure_body | create_function_body | constructor_declaration ) ) ;
    public final void subprog_decl_in_type() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:372:5: ( ^( ( MEMBER_VK | STATIC_VK ) ( create_procedure_body | create_function_body | constructor_declaration ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:372:10: ^( ( MEMBER_VK | STATIC_VK ) ( create_procedure_body | create_function_body | constructor_declaration ) )
            {
            if ( input.LA(1)==MEMBER_VK||input.LA(1)==STATIC_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:373:13: ( create_procedure_body | create_function_body | constructor_declaration )
            int alt119=3;
            switch ( input.LA(1) ) {
            case CREATE_PROCEDURE:
                {
                alt119=1;
                }
                break;
            case CREATE_FUNCTION:
                {
                alt119=2;
                }
                break;
            case CONSTRUCTOR_VK:
                {
                alt119=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 119, 0, input);

                throw nvae;

            }

            switch (alt119) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:373:18: create_procedure_body
                    {
                    pushFollow(FOLLOW_create_procedure_body_in_subprog_decl_in_type3433);
                    create_procedure_body();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:374:18: create_function_body
                    {
                    pushFollow(FOLLOW_create_function_body_in_subprog_decl_in_type3452);
                    create_function_body();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:375:18: constructor_declaration
                    {
                    pushFollow(FOLLOW_constructor_declaration_in_subprog_decl_in_type3471);
                    constructor_declaration();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "subprog_decl_in_type"



    // $ANTLR start "constructor_declaration"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:380:1: constructor_declaration : ^( CONSTRUCTOR_VK type_spec ( FINAL_VK )? ( INSTANTIABLE_VK )? ^( PARAMETERS ( type_elements_parameter )* ) ( ^( CALL_MODE call_spec ) | ^( BODY_MODE ( declare_spec )* body ) ) ) ;
    public final void constructor_declaration() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:381:5: ( ^( CONSTRUCTOR_VK type_spec ( FINAL_VK )? ( INSTANTIABLE_VK )? ^( PARAMETERS ( type_elements_parameter )* ) ( ^( CALL_MODE call_spec ) | ^( BODY_MODE ( declare_spec )* body ) ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:381:10: ^( CONSTRUCTOR_VK type_spec ( FINAL_VK )? ( INSTANTIABLE_VK )? ^( PARAMETERS ( type_elements_parameter )* ) ( ^( CALL_MODE call_spec ) | ^( BODY_MODE ( declare_spec )* body ) ) )
            {
            match(input,CONSTRUCTOR_VK,FOLLOW_CONSTRUCTOR_VK_in_constructor_declaration3516); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_type_spec_in_constructor_declaration3518);
            type_spec();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:381:37: ( FINAL_VK )?
            int alt120=2;
            int LA120_0 = input.LA(1);

            if ( (LA120_0==FINAL_VK) ) {
                alt120=1;
            }
            switch (alt120) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:381:37: FINAL_VK
                    {
                    match(input,FINAL_VK,FOLLOW_FINAL_VK_in_constructor_declaration3520); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:381:47: ( INSTANTIABLE_VK )?
            int alt121=2;
            int LA121_0 = input.LA(1);

            if ( (LA121_0==INSTANTIABLE_VK) ) {
                alt121=1;
            }
            switch (alt121) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:381:47: INSTANTIABLE_VK
                    {
                    match(input,INSTANTIABLE_VK,FOLLOW_INSTANTIABLE_VK_in_constructor_declaration3523); 

                    }
                    break;

            }


            match(input,PARAMETERS,FOLLOW_PARAMETERS_in_constructor_declaration3527); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:381:77: ( type_elements_parameter )*
                loop122:
                do {
                    int alt122=2;
                    int LA122_0 = input.LA(1);

                    if ( (LA122_0==PARAMETER) ) {
                        alt122=1;
                    }


                    switch (alt122) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:381:77: type_elements_parameter
                	    {
                	    pushFollow(FOLLOW_type_elements_parameter_in_constructor_declaration3529);
                	    type_elements_parameter();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop122;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:382:13: ( ^( CALL_MODE call_spec ) | ^( BODY_MODE ( declare_spec )* body ) )
            int alt124=2;
            int LA124_0 = input.LA(1);

            if ( (LA124_0==CALL_MODE) ) {
                alt124=1;
            }
            else if ( (LA124_0==BODY_MODE) ) {
                alt124=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 124, 0, input);

                throw nvae;

            }
            switch (alt124) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:382:18: ^( CALL_MODE call_spec )
                    {
                    match(input,CALL_MODE,FOLLOW_CALL_MODE_in_constructor_declaration3552); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_call_spec_in_constructor_declaration3554);
                    call_spec();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:383:18: ^( BODY_MODE ( declare_spec )* body )
                    {
                    match(input,BODY_MODE,FOLLOW_BODY_MODE_in_constructor_declaration3575); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:383:30: ( declare_spec )*
                    loop123:
                    do {
                        int alt123=2;
                        int LA123_0 = input.LA(1);

                        if ( (LA123_0==CREATE_FUNCTION||LA123_0==CREATE_PROCEDURE||LA123_0==CURSOR_DECLARE||LA123_0==EXCEPTION_DECLARE||LA123_0==PRAGMA_DECLARE||(LA123_0 >= RECORD_TYPE_DECLARE && LA123_0 <= RECORD_VAR_DECLARE)||(LA123_0 >= SUBTYPE_DECLARE && LA123_0 <= TABLE_VAR_DECLARE)||LA123_0==VARIABLE_DECLARE) ) {
                            alt123=1;
                        }


                        switch (alt123) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:383:30: declare_spec
                    	    {
                    	    pushFollow(FOLLOW_declare_spec_in_constructor_declaration3577);
                    	    declare_spec();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop123;
                        }
                    } while (true);


                    pushFollow(FOLLOW_body_in_constructor_declaration3580);
                    body();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "constructor_declaration"



    // $ANTLR start "modifier_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:392:1: modifier_clause : ^( MODIFIER ( SQL92_RESERVED_NOT )? ( INSTANTIABLE_VK | FINAL_VK | OVERRIDING_VK ) ) ;
    public final void modifier_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:393:5: ( ^( MODIFIER ( SQL92_RESERVED_NOT )? ( INSTANTIABLE_VK | FINAL_VK | OVERRIDING_VK ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:393:10: ^( MODIFIER ( SQL92_RESERVED_NOT )? ( INSTANTIABLE_VK | FINAL_VK | OVERRIDING_VK ) )
            {
            match(input,MODIFIER,FOLLOW_MODIFIER_in_modifier_clause3630); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:393:21: ( SQL92_RESERVED_NOT )?
            int alt125=2;
            int LA125_0 = input.LA(1);

            if ( (LA125_0==SQL92_RESERVED_NOT) ) {
                alt125=1;
            }
            switch (alt125) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:393:21: SQL92_RESERVED_NOT
                    {
                    match(input,SQL92_RESERVED_NOT,FOLLOW_SQL92_RESERVED_NOT_in_modifier_clause3632); 

                    }
                    break;

            }


            if ( input.LA(1)==FINAL_VK||input.LA(1)==INSTANTIABLE_VK||input.LA(1)==OVERRIDING_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "modifier_clause"



    // $ANTLR start "sqlj_object_type_attr"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:396:1: sqlj_object_type_attr : ^( EXTERNAL_VK expression ) ;
    public final void sqlj_object_type_attr() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:397:5: ( ^( EXTERNAL_VK expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:397:10: ^( EXTERNAL_VK expression )
            {
            match(input,EXTERNAL_VK,FOLLOW_EXTERNAL_VK_in_sqlj_object_type_attr3663); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_sqlj_object_type_attr3665);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "sqlj_object_type_attr"



    // $ANTLR start "element_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:400:1: element_spec : ^( ELEMENT_SPEC ( element_spec_options )+ ( modifier_clause )? ( pragma_clause )? ) ;
    public final void element_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:401:5: ( ^( ELEMENT_SPEC ( element_spec_options )+ ( modifier_clause )? ( pragma_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:401:10: ^( ELEMENT_SPEC ( element_spec_options )+ ( modifier_clause )? ( pragma_clause )? )
            {
            match(input,ELEMENT_SPEC,FOLLOW_ELEMENT_SPEC_in_element_spec3687); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:401:25: ( element_spec_options )+
            int cnt126=0;
            loop126:
            do {
                int alt126=2;
                int LA126_0 = input.LA(1);

                if ( (LA126_0==SQL92_RESERVED_ORDER||LA126_0==MAP_VK||LA126_0==MEMBER_VK||LA126_0==STATIC_VK||LA126_0==CONSTRUCTOR_SPEC||LA126_0==FIELD_SPEC) ) {
                    alt126=1;
                }


                switch (alt126) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:401:25: element_spec_options
            	    {
            	    pushFollow(FOLLOW_element_spec_options_in_element_spec3689);
            	    element_spec_options();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt126 >= 1 ) break loop126;
                        EarlyExitException eee =
                            new EarlyExitException(126, input);
                        throw eee;
                }
                cnt126++;
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:401:47: ( modifier_clause )?
            int alt127=2;
            int LA127_0 = input.LA(1);

            if ( (LA127_0==MODIFIER) ) {
                alt127=1;
            }
            switch (alt127) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:401:47: modifier_clause
                    {
                    pushFollow(FOLLOW_modifier_clause_in_element_spec3692);
                    modifier_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:401:64: ( pragma_clause )?
            int alt128=2;
            int LA128_0 = input.LA(1);

            if ( (LA128_0==PRAGMA_VK) ) {
                alt128=1;
            }
            switch (alt128) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:401:64: pragma_clause
                    {
                    pushFollow(FOLLOW_pragma_clause_in_element_spec3695);
                    pragma_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "element_spec"



    // $ANTLR start "element_spec_options"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:404:1: element_spec_options : ( subprogram_spec | constructor_spec | map_order_function_spec | ^( FIELD_SPEC id type_spec ( sqlj_object_type_attr )? ) );
    public final void element_spec_options() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:405:5: ( subprogram_spec | constructor_spec | map_order_function_spec | ^( FIELD_SPEC id type_spec ( sqlj_object_type_attr )? ) )
            int alt130=4;
            switch ( input.LA(1) ) {
            case MEMBER_VK:
            case STATIC_VK:
                {
                alt130=1;
                }
                break;
            case CONSTRUCTOR_SPEC:
                {
                alt130=2;
                }
                break;
            case SQL92_RESERVED_ORDER:
            case MAP_VK:
                {
                alt130=3;
                }
                break;
            case FIELD_SPEC:
                {
                alt130=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 130, 0, input);

                throw nvae;

            }

            switch (alt130) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:405:10: subprogram_spec
                    {
                    pushFollow(FOLLOW_subprogram_spec_in_element_spec_options3717);
                    subprogram_spec();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:406:10: constructor_spec
                    {
                    pushFollow(FOLLOW_constructor_spec_in_element_spec_options3728);
                    constructor_spec();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:407:10: map_order_function_spec
                    {
                    pushFollow(FOLLOW_map_order_function_spec_in_element_spec_options3739);
                    map_order_function_spec();

                    state._fsp--;


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:408:10: ^( FIELD_SPEC id type_spec ( sqlj_object_type_attr )? )
                    {
                    match(input,FIELD_SPEC,FOLLOW_FIELD_SPEC_in_element_spec_options3751); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_id_in_element_spec_options3753);
                    id();

                    state._fsp--;


                    pushFollow(FOLLOW_type_spec_in_element_spec_options3755);
                    type_spec();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:408:36: ( sqlj_object_type_attr )?
                    int alt129=2;
                    int LA129_0 = input.LA(1);

                    if ( (LA129_0==EXTERNAL_VK) ) {
                        alt129=1;
                    }
                    switch (alt129) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:408:36: sqlj_object_type_attr
                            {
                            pushFollow(FOLLOW_sqlj_object_type_attr_in_element_spec_options3757);
                            sqlj_object_type_attr();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "element_spec_options"



    // $ANTLR start "subprogram_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:411:1: subprogram_spec : ^( ( MEMBER_VK | STATIC_VK ) ( procedure_spec | function_spec ) ) ;
    public final void subprogram_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:412:5: ( ^( ( MEMBER_VK | STATIC_VK ) ( procedure_spec | function_spec ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:412:10: ^( ( MEMBER_VK | STATIC_VK ) ( procedure_spec | function_spec ) )
            {
            if ( input.LA(1)==MEMBER_VK||input.LA(1)==STATIC_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:413:13: ( procedure_spec | function_spec )
            int alt131=2;
            int LA131_0 = input.LA(1);

            if ( (LA131_0==PROCEDURE_SPEC) ) {
                alt131=1;
            }
            else if ( (LA131_0==FUNCTION_SPEC) ) {
                alt131=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 131, 0, input);

                throw nvae;

            }
            switch (alt131) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:413:18: procedure_spec
                    {
                    pushFollow(FOLLOW_procedure_spec_in_subprogram_spec3803);
                    procedure_spec();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:414:18: function_spec
                    {
                    pushFollow(FOLLOW_function_spec_in_subprogram_spec3822);
                    function_spec();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "subprogram_spec"



    // $ANTLR start "constructor_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:419:1: constructor_spec : ^( CONSTRUCTOR_SPEC type_spec ( FINAL_VK )? ( INSTANTIABLE_VK )? ^( PARAMETERS ( type_elements_parameter )* ) ( constructor_call_mode )? ) ;
    public final void constructor_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:420:5: ( ^( CONSTRUCTOR_SPEC type_spec ( FINAL_VK )? ( INSTANTIABLE_VK )? ^( PARAMETERS ( type_elements_parameter )* ) ( constructor_call_mode )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:420:10: ^( CONSTRUCTOR_SPEC type_spec ( FINAL_VK )? ( INSTANTIABLE_VK )? ^( PARAMETERS ( type_elements_parameter )* ) ( constructor_call_mode )? )
            {
            match(input,CONSTRUCTOR_SPEC,FOLLOW_CONSTRUCTOR_SPEC_in_constructor_spec3867); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_type_spec_in_constructor_spec3869);
            type_spec();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:420:39: ( FINAL_VK )?
            int alt132=2;
            int LA132_0 = input.LA(1);

            if ( (LA132_0==FINAL_VK) ) {
                alt132=1;
            }
            switch (alt132) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:420:39: FINAL_VK
                    {
                    match(input,FINAL_VK,FOLLOW_FINAL_VK_in_constructor_spec3871); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:420:49: ( INSTANTIABLE_VK )?
            int alt133=2;
            int LA133_0 = input.LA(1);

            if ( (LA133_0==INSTANTIABLE_VK) ) {
                alt133=1;
            }
            switch (alt133) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:420:49: INSTANTIABLE_VK
                    {
                    match(input,INSTANTIABLE_VK,FOLLOW_INSTANTIABLE_VK_in_constructor_spec3874); 

                    }
                    break;

            }


            match(input,PARAMETERS,FOLLOW_PARAMETERS_in_constructor_spec3878); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:420:79: ( type_elements_parameter )*
                loop134:
                do {
                    int alt134=2;
                    int LA134_0 = input.LA(1);

                    if ( (LA134_0==PARAMETER) ) {
                        alt134=1;
                    }


                    switch (alt134) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:420:79: type_elements_parameter
                	    {
                	    pushFollow(FOLLOW_type_elements_parameter_in_constructor_spec3880);
                	    type_elements_parameter();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop134;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:420:105: ( constructor_call_mode )?
            int alt135=2;
            int LA135_0 = input.LA(1);

            if ( (LA135_0==CALL_MODE) ) {
                alt135=1;
            }
            switch (alt135) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:420:105: constructor_call_mode
                    {
                    pushFollow(FOLLOW_constructor_call_mode_in_constructor_spec3884);
                    constructor_call_mode();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "constructor_spec"



    // $ANTLR start "constructor_call_mode"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:423:1: constructor_call_mode : ^( CALL_MODE call_spec ) ;
    public final void constructor_call_mode() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:424:5: ( ^( CALL_MODE call_spec ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:424:10: ^( CALL_MODE call_spec )
            {
            match(input,CALL_MODE,FOLLOW_CALL_MODE_in_constructor_call_mode3907); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_call_spec_in_constructor_call_mode3909);
            call_spec();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "constructor_call_mode"



    // $ANTLR start "map_order_function_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:427:1: map_order_function_spec : ^( ( MAP_VK | SQL92_RESERVED_ORDER ) function_spec ) ;
    public final void map_order_function_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:428:5: ( ^( ( MAP_VK | SQL92_RESERVED_ORDER ) function_spec ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:428:10: ^( ( MAP_VK | SQL92_RESERVED_ORDER ) function_spec )
            {
            if ( input.LA(1)==SQL92_RESERVED_ORDER||input.LA(1)==MAP_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_function_spec_in_map_order_function_spec3937);
            function_spec();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "map_order_function_spec"



    // $ANTLR start "pragma_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:431:1: pragma_clause : ^( PRAGMA_VK ( pragma_elements )+ ) ;
    public final void pragma_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:432:5: ( ^( PRAGMA_VK ( pragma_elements )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:432:10: ^( PRAGMA_VK ( pragma_elements )+ )
            {
            match(input,PRAGMA_VK,FOLLOW_PRAGMA_VK_in_pragma_clause3959); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:432:22: ( pragma_elements )+
            int cnt136=0;
            loop136:
            do {
                int alt136=2;
                int LA136_0 = input.LA(1);

                if ( (LA136_0==SQL92_RESERVED_DEFAULT||LA136_0==CHAR_SET_NAME||LA136_0==ID) ) {
                    alt136=1;
                }


                switch (alt136) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:432:22: pragma_elements
            	    {
            	    pushFollow(FOLLOW_pragma_elements_in_pragma_clause3961);
            	    pragma_elements();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt136 >= 1 ) break loop136;
                        EarlyExitException eee =
                            new EarlyExitException(136, input);
                        throw eee;
                }
                cnt136++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "pragma_clause"



    // $ANTLR start "pragma_elements"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:435:1: pragma_elements : ( id | SQL92_RESERVED_DEFAULT );
    public final void pragma_elements() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:436:5: ( id | SQL92_RESERVED_DEFAULT )
            int alt137=2;
            int LA137_0 = input.LA(1);

            if ( (LA137_0==CHAR_SET_NAME||LA137_0==ID) ) {
                alt137=1;
            }
            else if ( (LA137_0==SQL92_RESERVED_DEFAULT) ) {
                alt137=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 137, 0, input);

                throw nvae;

            }
            switch (alt137) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:436:10: id
                    {
                    pushFollow(FOLLOW_id_in_pragma_elements3983);
                    id();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:437:10: SQL92_RESERVED_DEFAULT
                    {
                    match(input,SQL92_RESERVED_DEFAULT,FOLLOW_SQL92_RESERVED_DEFAULT_in_pragma_elements3994); 

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "pragma_elements"



    // $ANTLR start "type_elements_parameter"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:440:1: type_elements_parameter : ^( PARAMETER parameter_name type_spec ) ;
    public final void type_elements_parameter() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:441:5: ( ^( PARAMETER parameter_name type_spec ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:441:10: ^( PARAMETER parameter_name type_spec )
            {
            match(input,PARAMETER,FOLLOW_PARAMETER_in_type_elements_parameter4015); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_parameter_name_in_type_elements_parameter4017);
            parameter_name();

            state._fsp--;


            pushFollow(FOLLOW_type_spec_in_type_elements_parameter4019);
            type_spec();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "type_elements_parameter"



    // $ANTLR start "drop_sequence"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:450:1: drop_sequence : ^( DROP_SEQUENCE sequence_name ) ;
    public final void drop_sequence() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:451:5: ( ^( DROP_SEQUENCE sequence_name ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:451:9: ^( DROP_SEQUENCE sequence_name )
            {
            match(input,DROP_SEQUENCE,FOLLOW_DROP_SEQUENCE_in_drop_sequence4046); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_sequence_name_in_drop_sequence4048);
            sequence_name();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "drop_sequence"



    // $ANTLR start "alter_sequence"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:454:1: alter_sequence : ^( ALTER_SEQUENCE sequence_name ( sequence_spec )+ ) ;
    public final void alter_sequence() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:455:5: ( ^( ALTER_SEQUENCE sequence_name ( sequence_spec )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:455:10: ^( ALTER_SEQUENCE sequence_name ( sequence_spec )+ )
            {
            match(input,ALTER_SEQUENCE,FOLLOW_ALTER_SEQUENCE_in_alter_sequence4070); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_sequence_name_in_alter_sequence4072);
            sequence_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:455:41: ( sequence_spec )+
            int cnt138=0;
            loop138:
            do {
                int alt138=2;
                int LA138_0 = input.LA(1);

                if ( (LA138_0==CACHE_VK||LA138_0==CYCLE_VK||LA138_0==INCREMENT_VK||LA138_0==MAXVALUE_VK||LA138_0==MINVALUE_VK||LA138_0==NOCACHE_VK||LA138_0==NOCYCLE_VK||(LA138_0 >= NOMAXVALUE_VK && LA138_0 <= NOORDER_VK)||LA138_0==ORDER_VK||LA138_0==START_VK) ) {
                    alt138=1;
                }


                switch (alt138) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:455:41: sequence_spec
            	    {
            	    pushFollow(FOLLOW_sequence_spec_in_alter_sequence4074);
            	    sequence_spec();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt138 >= 1 ) break loop138;
                        EarlyExitException eee =
                            new EarlyExitException(138, input);
                        throw eee;
                }
                cnt138++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "alter_sequence"



    // $ANTLR start "create_sequence"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:458:1: create_sequence : ^( CREATE_SEQUENCE sequence_name ( sequence_spec )* ) ;
    public final void create_sequence() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:459:5: ( ^( CREATE_SEQUENCE sequence_name ( sequence_spec )* ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:459:10: ^( CREATE_SEQUENCE sequence_name ( sequence_spec )* )
            {
            match(input,CREATE_SEQUENCE,FOLLOW_CREATE_SEQUENCE_in_create_sequence4097); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_sequence_name_in_create_sequence4099);
            sequence_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:459:42: ( sequence_spec )*
            loop139:
            do {
                int alt139=2;
                int LA139_0 = input.LA(1);

                if ( (LA139_0==CACHE_VK||LA139_0==CYCLE_VK||LA139_0==INCREMENT_VK||LA139_0==MAXVALUE_VK||LA139_0==MINVALUE_VK||LA139_0==NOCACHE_VK||LA139_0==NOCYCLE_VK||(LA139_0 >= NOMAXVALUE_VK && LA139_0 <= NOORDER_VK)||LA139_0==ORDER_VK||LA139_0==START_VK) ) {
                    alt139=1;
                }


                switch (alt139) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:459:42: sequence_spec
            	    {
            	    pushFollow(FOLLOW_sequence_spec_in_create_sequence4101);
            	    sequence_spec();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop139;
                }
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "create_sequence"



    // $ANTLR start "sequence_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:464:1: sequence_spec : ( ^( START_VK UNSIGNED_INTEGER ) | ^( INCREMENT_VK UNSIGNED_INTEGER ) | ^( MAXVALUE_VK UNSIGNED_INTEGER ) | ^( MINVALUE_VK UNSIGNED_INTEGER ) | ^( CACHE_VK UNSIGNED_INTEGER ) | NOMAXVALUE_VK | NOMINVALUE_VK | CYCLE_VK | NOCYCLE_VK | NOCACHE_VK | ORDER_VK | NOORDER_VK );
    public final void sequence_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:465:5: ( ^( START_VK UNSIGNED_INTEGER ) | ^( INCREMENT_VK UNSIGNED_INTEGER ) | ^( MAXVALUE_VK UNSIGNED_INTEGER ) | ^( MINVALUE_VK UNSIGNED_INTEGER ) | ^( CACHE_VK UNSIGNED_INTEGER ) | NOMAXVALUE_VK | NOMINVALUE_VK | CYCLE_VK | NOCYCLE_VK | NOCACHE_VK | ORDER_VK | NOORDER_VK )
            int alt140=12;
            switch ( input.LA(1) ) {
            case START_VK:
                {
                alt140=1;
                }
                break;
            case INCREMENT_VK:
                {
                alt140=2;
                }
                break;
            case MAXVALUE_VK:
                {
                alt140=3;
                }
                break;
            case MINVALUE_VK:
                {
                alt140=4;
                }
                break;
            case CACHE_VK:
                {
                alt140=5;
                }
                break;
            case NOMAXVALUE_VK:
                {
                alt140=6;
                }
                break;
            case NOMINVALUE_VK:
                {
                alt140=7;
                }
                break;
            case CYCLE_VK:
                {
                alt140=8;
                }
                break;
            case NOCYCLE_VK:
                {
                alt140=9;
                }
                break;
            case NOCACHE_VK:
                {
                alt140=10;
                }
                break;
            case ORDER_VK:
                {
                alt140=11;
                }
                break;
            case NOORDER_VK:
                {
                alt140=12;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 140, 0, input);

                throw nvae;

            }

            switch (alt140) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:465:10: ^( START_VK UNSIGNED_INTEGER )
                    {
                    match(input,START_VK,FOLLOW_START_VK_in_sequence_spec4126); 

                    match(input, Token.DOWN, null); 
                    match(input,UNSIGNED_INTEGER,FOLLOW_UNSIGNED_INTEGER_in_sequence_spec4128); 

                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:466:10: ^( INCREMENT_VK UNSIGNED_INTEGER )
                    {
                    match(input,INCREMENT_VK,FOLLOW_INCREMENT_VK_in_sequence_spec4141); 

                    match(input, Token.DOWN, null); 
                    match(input,UNSIGNED_INTEGER,FOLLOW_UNSIGNED_INTEGER_in_sequence_spec4143); 

                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:467:10: ^( MAXVALUE_VK UNSIGNED_INTEGER )
                    {
                    match(input,MAXVALUE_VK,FOLLOW_MAXVALUE_VK_in_sequence_spec4156); 

                    match(input, Token.DOWN, null); 
                    match(input,UNSIGNED_INTEGER,FOLLOW_UNSIGNED_INTEGER_in_sequence_spec4158); 

                    match(input, Token.UP, null); 


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:468:10: ^( MINVALUE_VK UNSIGNED_INTEGER )
                    {
                    match(input,MINVALUE_VK,FOLLOW_MINVALUE_VK_in_sequence_spec4171); 

                    match(input, Token.DOWN, null); 
                    match(input,UNSIGNED_INTEGER,FOLLOW_UNSIGNED_INTEGER_in_sequence_spec4173); 

                    match(input, Token.UP, null); 


                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:469:10: ^( CACHE_VK UNSIGNED_INTEGER )
                    {
                    match(input,CACHE_VK,FOLLOW_CACHE_VK_in_sequence_spec4186); 

                    match(input, Token.DOWN, null); 
                    match(input,UNSIGNED_INTEGER,FOLLOW_UNSIGNED_INTEGER_in_sequence_spec4188); 

                    match(input, Token.UP, null); 


                    }
                    break;
                case 6 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:470:10: NOMAXVALUE_VK
                    {
                    match(input,NOMAXVALUE_VK,FOLLOW_NOMAXVALUE_VK_in_sequence_spec4200); 

                    }
                    break;
                case 7 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:471:10: NOMINVALUE_VK
                    {
                    match(input,NOMINVALUE_VK,FOLLOW_NOMINVALUE_VK_in_sequence_spec4211); 

                    }
                    break;
                case 8 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:472:10: CYCLE_VK
                    {
                    match(input,CYCLE_VK,FOLLOW_CYCLE_VK_in_sequence_spec4222); 

                    }
                    break;
                case 9 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:473:10: NOCYCLE_VK
                    {
                    match(input,NOCYCLE_VK,FOLLOW_NOCYCLE_VK_in_sequence_spec4233); 

                    }
                    break;
                case 10 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:474:10: NOCACHE_VK
                    {
                    match(input,NOCACHE_VK,FOLLOW_NOCACHE_VK_in_sequence_spec4244); 

                    }
                    break;
                case 11 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:475:10: ORDER_VK
                    {
                    match(input,ORDER_VK,FOLLOW_ORDER_VK_in_sequence_spec4255); 

                    }
                    break;
                case 12 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:476:10: NOORDER_VK
                    {
                    match(input,NOORDER_VK,FOLLOW_NOORDER_VK_in_sequence_spec4266); 

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "sequence_spec"



    // $ANTLR start "invoker_rights_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:485:1: invoker_rights_clause : ^( AUTHID_VK ( CURRENT_USER_VK | DEFINER_VK ) ) ;
    public final void invoker_rights_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:486:5: ( ^( AUTHID_VK ( CURRENT_USER_VK | DEFINER_VK ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:486:10: ^( AUTHID_VK ( CURRENT_USER_VK | DEFINER_VK ) )
            {
            match(input,AUTHID_VK,FOLLOW_AUTHID_VK_in_invoker_rights_clause4293); 

            match(input, Token.DOWN, null); 
            if ( input.LA(1)==CURRENT_USER_VK||input.LA(1)==DEFINER_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "invoker_rights_clause"



    // $ANTLR start "compiler_parameters_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:489:1: compiler_parameters_clause : ^( COMPILER_PARAMETER ^( ASSIGN id expression ) ) ;
    public final void compiler_parameters_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:490:5: ( ^( COMPILER_PARAMETER ^( ASSIGN id expression ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:490:10: ^( COMPILER_PARAMETER ^( ASSIGN id expression ) )
            {
            match(input,COMPILER_PARAMETER,FOLLOW_COMPILER_PARAMETER_in_compiler_parameters_clause4321); 

            match(input, Token.DOWN, null); 
            match(input,ASSIGN,FOLLOW_ASSIGN_in_compiler_parameters_clause4324); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_id_in_compiler_parameters_clause4326);
            id();

            state._fsp--;


            pushFollow(FOLLOW_expression_in_compiler_parameters_clause4328);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "compiler_parameters_clause"



    // $ANTLR start "call_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:493:1: call_spec : ^( LANGUAGE_VK ( java_spec | c_spec ) ) ;
    public final void call_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:494:5: ( ^( LANGUAGE_VK ( java_spec | c_spec ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:494:10: ^( LANGUAGE_VK ( java_spec | c_spec ) )
            {
            match(input,LANGUAGE_VK,FOLLOW_LANGUAGE_VK_in_call_spec4351); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:494:24: ( java_spec | c_spec )
            int alt141=2;
            int LA141_0 = input.LA(1);

            if ( (LA141_0==JAVA_VK) ) {
                alt141=1;
            }
            else if ( (LA141_0==C_VK) ) {
                alt141=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 141, 0, input);

                throw nvae;

            }
            switch (alt141) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:494:26: java_spec
                    {
                    pushFollow(FOLLOW_java_spec_in_call_spec4355);
                    java_spec();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:494:38: c_spec
                    {
                    pushFollow(FOLLOW_c_spec_in_call_spec4359);
                    c_spec();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "call_spec"



    // $ANTLR start "java_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:499:1: java_spec : ^( JAVA_VK CHAR_STRING ) ;
    public final void java_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:500:5: ( ^( JAVA_VK CHAR_STRING ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:500:10: ^( JAVA_VK CHAR_STRING )
            {
            match(input,JAVA_VK,FOLLOW_JAVA_VK_in_java_spec4385); 

            match(input, Token.DOWN, null); 
            match(input,CHAR_STRING,FOLLOW_CHAR_STRING_in_java_spec4387); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "java_spec"



    // $ANTLR start "c_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:503:1: c_spec : ^( C_VK ( CHAR_STRING )? ( CONTEXT_VK )? ^( LIBRARY_VK id ) ( c_agent_in_clause )? ( c_parameters_clause )? ) ;
    public final void c_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:504:5: ( ^( C_VK ( CHAR_STRING )? ( CONTEXT_VK )? ^( LIBRARY_VK id ) ( c_agent_in_clause )? ( c_parameters_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:504:10: ^( C_VK ( CHAR_STRING )? ( CONTEXT_VK )? ^( LIBRARY_VK id ) ( c_agent_in_clause )? ( c_parameters_clause )? )
            {
            match(input,C_VK,FOLLOW_C_VK_in_c_spec4409); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:504:17: ( CHAR_STRING )?
            int alt142=2;
            int LA142_0 = input.LA(1);

            if ( (LA142_0==CHAR_STRING) ) {
                alt142=1;
            }
            switch (alt142) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:504:17: CHAR_STRING
                    {
                    match(input,CHAR_STRING,FOLLOW_CHAR_STRING_in_c_spec4411); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:504:30: ( CONTEXT_VK )?
            int alt143=2;
            int LA143_0 = input.LA(1);

            if ( (LA143_0==CONTEXT_VK) ) {
                alt143=1;
            }
            switch (alt143) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:504:30: CONTEXT_VK
                    {
                    match(input,CONTEXT_VK,FOLLOW_CONTEXT_VK_in_c_spec4414); 

                    }
                    break;

            }


            match(input,LIBRARY_VK,FOLLOW_LIBRARY_VK_in_c_spec4418); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_id_in_c_spec4420);
            id();

            state._fsp--;


            match(input, Token.UP, null); 


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:504:59: ( c_agent_in_clause )?
            int alt144=2;
            int LA144_0 = input.LA(1);

            if ( (LA144_0==AGENT_VK) ) {
                alt144=1;
            }
            switch (alt144) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:504:59: c_agent_in_clause
                    {
                    pushFollow(FOLLOW_c_agent_in_clause_in_c_spec4423);
                    c_agent_in_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:504:78: ( c_parameters_clause )?
            int alt145=2;
            int LA145_0 = input.LA(1);

            if ( (LA145_0==PARAMETERS_VK) ) {
                alt145=1;
            }
            switch (alt145) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:504:78: c_parameters_clause
                    {
                    pushFollow(FOLLOW_c_parameters_clause_in_c_spec4426);
                    c_parameters_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "c_spec"



    // $ANTLR start "c_agent_in_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:507:1: c_agent_in_clause : ^( AGENT_VK ( expression )+ ) ;
    public final void c_agent_in_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:508:5: ( ^( AGENT_VK ( expression )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:508:10: ^( AGENT_VK ( expression )+ )
            {
            match(input,AGENT_VK,FOLLOW_AGENT_VK_in_c_agent_in_clause4449); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:508:21: ( expression )+
            int cnt146=0;
            loop146:
            do {
                int alt146=2;
                int LA146_0 = input.LA(1);

                if ( (LA146_0==EXPR||LA146_0==LOGIC_EXPR) ) {
                    alt146=1;
                }


                switch (alt146) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:508:21: expression
            	    {
            	    pushFollow(FOLLOW_expression_in_c_agent_in_clause4451);
            	    expression();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt146 >= 1 ) break loop146;
                        EarlyExitException eee =
                            new EarlyExitException(146, input);
                        throw eee;
                }
                cnt146++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "c_agent_in_clause"



    // $ANTLR start "c_parameters_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:511:1: c_parameters_clause : ^( PARAMETERS_VK ( THREE_DOTS | ( expression )+ ) ) ;
    public final void c_parameters_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:512:5: ( ^( PARAMETERS_VK ( THREE_DOTS | ( expression )+ ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:512:10: ^( PARAMETERS_VK ( THREE_DOTS | ( expression )+ ) )
            {
            match(input,PARAMETERS_VK,FOLLOW_PARAMETERS_VK_in_c_parameters_clause4474); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:512:26: ( THREE_DOTS | ( expression )+ )
            int alt148=2;
            int LA148_0 = input.LA(1);

            if ( (LA148_0==THREE_DOTS) ) {
                alt148=1;
            }
            else if ( (LA148_0==EXPR||LA148_0==LOGIC_EXPR) ) {
                alt148=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 148, 0, input);

                throw nvae;

            }
            switch (alt148) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:512:27: THREE_DOTS
                    {
                    match(input,THREE_DOTS,FOLLOW_THREE_DOTS_in_c_parameters_clause4477); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:512:38: ( expression )+
                    {
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:512:38: ( expression )+
                    int cnt147=0;
                    loop147:
                    do {
                        int alt147=2;
                        int LA147_0 = input.LA(1);

                        if ( (LA147_0==EXPR||LA147_0==LOGIC_EXPR) ) {
                            alt147=1;
                        }


                        switch (alt147) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:512:38: expression
                    	    {
                    	    pushFollow(FOLLOW_expression_in_c_parameters_clause4479);
                    	    expression();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt147 >= 1 ) break loop147;
                                EarlyExitException eee =
                                    new EarlyExitException(147, input);
                                throw eee;
                        }
                        cnt147++;
                    } while (true);


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "c_parameters_clause"



    // $ANTLR start "parameter"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:517:1: parameter : ^( PARAMETER parameter_name ( SQL92_RESERVED_IN | OUT_VK | INOUT_VK )* ( type_spec )? ( default_value_part )? ) ;
    public final void parameter() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:518:5: ( ^( PARAMETER parameter_name ( SQL92_RESERVED_IN | OUT_VK | INOUT_VK )* ( type_spec )? ( default_value_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:518:10: ^( PARAMETER parameter_name ( SQL92_RESERVED_IN | OUT_VK | INOUT_VK )* ( type_spec )? ( default_value_part )? )
            {
            match(input,PARAMETER,FOLLOW_PARAMETER_in_parameter4505); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_parameter_name_in_parameter4507);
            parameter_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:518:37: ( SQL92_RESERVED_IN | OUT_VK | INOUT_VK )*
            loop149:
            do {
                int alt149=2;
                int LA149_0 = input.LA(1);

                if ( (LA149_0==SQL92_RESERVED_IN||LA149_0==INOUT_VK||LA149_0==OUT_VK) ) {
                    alt149=1;
                }


                switch (alt149) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
            	    {
            	    if ( input.LA(1)==SQL92_RESERVED_IN||input.LA(1)==INOUT_VK||input.LA(1)==OUT_VK ) {
            	        input.consume();
            	        state.errorRecovery=false;
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    break loop149;
                }
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:518:74: ( type_spec )?
            int alt150=2;
            int LA150_0 = input.LA(1);

            if ( (LA150_0==CUSTOM_TYPE||LA150_0==INTERVAL_DATATYPE||LA150_0==NATIVE_DATATYPE) ) {
                alt150=1;
            }
            switch (alt150) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:518:74: type_spec
                    {
                    pushFollow(FOLLOW_type_spec_in_parameter4518);
                    type_spec();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:518:85: ( default_value_part )?
            int alt151=2;
            int LA151_0 = input.LA(1);

            if ( (LA151_0==DEFAULT_VALUE) ) {
                alt151=1;
            }
            switch (alt151) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:518:85: default_value_part
                    {
                    pushFollow(FOLLOW_default_value_part_in_parameter4521);
                    default_value_part();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "parameter"



    // $ANTLR start "default_value_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:521:1: default_value_part : ^( DEFAULT_VALUE expression ) ;
    public final void default_value_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:522:5: ( ^( DEFAULT_VALUE expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:522:10: ^( DEFAULT_VALUE expression )
            {
            match(input,DEFAULT_VALUE,FOLLOW_DEFAULT_VALUE_in_default_value_part4544); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_default_value_part4546);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "default_value_part"



    // $ANTLR start "declare_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:531:1: declare_spec : ( variable_declaration | subtype_declaration | cursor_declaration | exception_declaration | pragma_declaration | record_declaration | table_declaration | create_procedure_body | create_function_body );
    public final void declare_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:532:5: ( variable_declaration | subtype_declaration | cursor_declaration | exception_declaration | pragma_declaration | record_declaration | table_declaration | create_procedure_body | create_function_body )
            int alt152=9;
            switch ( input.LA(1) ) {
            case VARIABLE_DECLARE:
                {
                alt152=1;
                }
                break;
            case SUBTYPE_DECLARE:
                {
                alt152=2;
                }
                break;
            case CURSOR_DECLARE:
                {
                alt152=3;
                }
                break;
            case EXCEPTION_DECLARE:
                {
                alt152=4;
                }
                break;
            case PRAGMA_DECLARE:
                {
                alt152=5;
                }
                break;
            case RECORD_TYPE_DECLARE:
            case RECORD_VAR_DECLARE:
                {
                alt152=6;
                }
                break;
            case TABLE_TYPE_DECLARE:
            case TABLE_VAR_DECLARE:
                {
                alt152=7;
                }
                break;
            case CREATE_PROCEDURE:
                {
                alt152=8;
                }
                break;
            case CREATE_FUNCTION:
                {
                alt152=9;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 152, 0, input);

                throw nvae;

            }

            switch (alt152) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:532:10: variable_declaration
                    {
                    pushFollow(FOLLOW_variable_declaration_in_declare_spec4573);
                    variable_declaration();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:533:11: subtype_declaration
                    {
                    pushFollow(FOLLOW_subtype_declaration_in_declare_spec4585);
                    subtype_declaration();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:534:11: cursor_declaration
                    {
                    pushFollow(FOLLOW_cursor_declaration_in_declare_spec4597);
                    cursor_declaration();

                    state._fsp--;


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:535:11: exception_declaration
                    {
                    pushFollow(FOLLOW_exception_declaration_in_declare_spec4609);
                    exception_declaration();

                    state._fsp--;


                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:536:11: pragma_declaration
                    {
                    pushFollow(FOLLOW_pragma_declaration_in_declare_spec4621);
                    pragma_declaration();

                    state._fsp--;


                    }
                    break;
                case 6 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:537:11: record_declaration
                    {
                    pushFollow(FOLLOW_record_declaration_in_declare_spec4633);
                    record_declaration();

                    state._fsp--;


                    }
                    break;
                case 7 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:538:11: table_declaration
                    {
                    pushFollow(FOLLOW_table_declaration_in_declare_spec4645);
                    table_declaration();

                    state._fsp--;


                    }
                    break;
                case 8 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:539:11: create_procedure_body
                    {
                    pushFollow(FOLLOW_create_procedure_body_in_declare_spec4657);
                    create_procedure_body();

                    state._fsp--;


                    }
                    break;
                case 9 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:540:11: create_function_body
                    {
                    pushFollow(FOLLOW_create_function_body_in_declare_spec4669);
                    create_function_body();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "declare_spec"



    // $ANTLR start "variable_declaration"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:544:1: variable_declaration : ^( VARIABLE_DECLARE variable_name type_spec ( CONSTANT_VK )? ( SQL92_RESERVED_NULL )? ( default_value_part )? ) ;
    public final void variable_declaration() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:545:5: ( ^( VARIABLE_DECLARE variable_name type_spec ( CONSTANT_VK )? ( SQL92_RESERVED_NULL )? ( default_value_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:545:10: ^( VARIABLE_DECLARE variable_name type_spec ( CONSTANT_VK )? ( SQL92_RESERVED_NULL )? ( default_value_part )? )
            {
            match(input,VARIABLE_DECLARE,FOLLOW_VARIABLE_DECLARE_in_variable_declaration4691); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_variable_name_in_variable_declaration4693);
            variable_name();

            state._fsp--;


            pushFollow(FOLLOW_type_spec_in_variable_declaration4695);
            type_spec();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:545:53: ( CONSTANT_VK )?
            int alt153=2;
            int LA153_0 = input.LA(1);

            if ( (LA153_0==CONSTANT_VK) ) {
                alt153=1;
            }
            switch (alt153) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:545:53: CONSTANT_VK
                    {
                    match(input,CONSTANT_VK,FOLLOW_CONSTANT_VK_in_variable_declaration4697); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:545:66: ( SQL92_RESERVED_NULL )?
            int alt154=2;
            int LA154_0 = input.LA(1);

            if ( (LA154_0==SQL92_RESERVED_NULL) ) {
                alt154=1;
            }
            switch (alt154) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:545:66: SQL92_RESERVED_NULL
                    {
                    match(input,SQL92_RESERVED_NULL,FOLLOW_SQL92_RESERVED_NULL_in_variable_declaration4700); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:545:87: ( default_value_part )?
            int alt155=2;
            int LA155_0 = input.LA(1);

            if ( (LA155_0==DEFAULT_VALUE) ) {
                alt155=1;
            }
            switch (alt155) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:545:87: default_value_part
                    {
                    pushFollow(FOLLOW_default_value_part_in_variable_declaration4703);
                    default_value_part();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "variable_declaration"



    // $ANTLR start "subtype_declaration"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:548:1: subtype_declaration : ^( SUBTYPE_DECLARE type_name type_spec ( SQL92_RESERVED_NULL )? ( subtype_range )? ) ;
    public final void subtype_declaration() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:549:7: ( ^( SUBTYPE_DECLARE type_name type_spec ( SQL92_RESERVED_NULL )? ( subtype_range )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:549:12: ^( SUBTYPE_DECLARE type_name type_spec ( SQL92_RESERVED_NULL )? ( subtype_range )? )
            {
            match(input,SUBTYPE_DECLARE,FOLLOW_SUBTYPE_DECLARE_in_subtype_declaration4732); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_type_name_in_subtype_declaration4734);
            type_name();

            state._fsp--;


            pushFollow(FOLLOW_type_spec_in_subtype_declaration4736);
            type_spec();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:549:50: ( SQL92_RESERVED_NULL )?
            int alt156=2;
            int LA156_0 = input.LA(1);

            if ( (LA156_0==SQL92_RESERVED_NULL) ) {
                alt156=1;
            }
            switch (alt156) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:549:50: SQL92_RESERVED_NULL
                    {
                    match(input,SQL92_RESERVED_NULL,FOLLOW_SQL92_RESERVED_NULL_in_subtype_declaration4738); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:549:71: ( subtype_range )?
            int alt157=2;
            int LA157_0 = input.LA(1);

            if ( (LA157_0==RANGE_VK) ) {
                alt157=1;
            }
            switch (alt157) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:549:71: subtype_range
                    {
                    pushFollow(FOLLOW_subtype_range_in_subtype_declaration4741);
                    subtype_range();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "subtype_declaration"



    // $ANTLR start "subtype_range"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:552:1: subtype_range : ^( RANGE_VK ( expression )+ ) ;
    public final void subtype_range() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:553:5: ( ^( RANGE_VK ( expression )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:553:10: ^( RANGE_VK ( expression )+ )
            {
            match(input,RANGE_VK,FOLLOW_RANGE_VK_in_subtype_range4766); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:553:21: ( expression )+
            int cnt158=0;
            loop158:
            do {
                int alt158=2;
                int LA158_0 = input.LA(1);

                if ( (LA158_0==EXPR||LA158_0==LOGIC_EXPR) ) {
                    alt158=1;
                }


                switch (alt158) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:553:21: expression
            	    {
            	    pushFollow(FOLLOW_expression_in_subtype_range4768);
            	    expression();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt158 >= 1 ) break loop158;
                        EarlyExitException eee =
                            new EarlyExitException(158, input);
                        throw eee;
                }
                cnt158++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "subtype_range"



    // $ANTLR start "cursor_declaration"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:557:1: cursor_declaration : ^( CURSOR_DECLARE cursor_name ( type_spec )? ( select_statement )? ^( PARAMETERS ( parameter_spec )* ) ) ;
    public final void cursor_declaration() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:558:5: ( ^( CURSOR_DECLARE cursor_name ( type_spec )? ( select_statement )? ^( PARAMETERS ( parameter_spec )* ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:558:10: ^( CURSOR_DECLARE cursor_name ( type_spec )? ( select_statement )? ^( PARAMETERS ( parameter_spec )* ) )
            {
            match(input,CURSOR_DECLARE,FOLLOW_CURSOR_DECLARE_in_cursor_declaration4792); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_cursor_name_in_cursor_declaration4794);
            cursor_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:558:39: ( type_spec )?
            int alt159=2;
            int LA159_0 = input.LA(1);

            if ( (LA159_0==CUSTOM_TYPE||LA159_0==INTERVAL_DATATYPE||LA159_0==NATIVE_DATATYPE) ) {
                alt159=1;
            }
            switch (alt159) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:558:39: type_spec
                    {
                    pushFollow(FOLLOW_type_spec_in_cursor_declaration4796);
                    type_spec();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:558:50: ( select_statement )?
            int alt160=2;
            int LA160_0 = input.LA(1);

            if ( (LA160_0==SELECT_STATEMENT) ) {
                alt160=1;
            }
            switch (alt160) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:558:50: select_statement
                    {
                    pushFollow(FOLLOW_select_statement_in_cursor_declaration4799);
                    select_statement();

                    state._fsp--;


                    }
                    break;

            }


            match(input,PARAMETERS,FOLLOW_PARAMETERS_in_cursor_declaration4803); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:558:81: ( parameter_spec )*
                loop161:
                do {
                    int alt161=2;
                    int LA161_0 = input.LA(1);

                    if ( (LA161_0==PARAMETER) ) {
                        alt161=1;
                    }


                    switch (alt161) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:558:81: parameter_spec
                	    {
                	    pushFollow(FOLLOW_parameter_spec_in_cursor_declaration4805);
                	    parameter_spec();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop161;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "cursor_declaration"



    // $ANTLR start "parameter_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:561:1: parameter_spec : ^( PARAMETER parameter_name ( type_spec )? ( default_value_part )? ) ;
    public final void parameter_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:562:5: ( ^( PARAMETER parameter_name ( type_spec )? ( default_value_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:562:10: ^( PARAMETER parameter_name ( type_spec )? ( default_value_part )? )
            {
            match(input,PARAMETER,FOLLOW_PARAMETER_in_parameter_spec4830); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_parameter_name_in_parameter_spec4832);
            parameter_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:562:37: ( type_spec )?
            int alt162=2;
            int LA162_0 = input.LA(1);

            if ( (LA162_0==CUSTOM_TYPE||LA162_0==INTERVAL_DATATYPE||LA162_0==NATIVE_DATATYPE) ) {
                alt162=1;
            }
            switch (alt162) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:562:37: type_spec
                    {
                    pushFollow(FOLLOW_type_spec_in_parameter_spec4834);
                    type_spec();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:562:48: ( default_value_part )?
            int alt163=2;
            int LA163_0 = input.LA(1);

            if ( (LA163_0==DEFAULT_VALUE) ) {
                alt163=1;
            }
            switch (alt163) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:562:48: default_value_part
                    {
                    pushFollow(FOLLOW_default_value_part_in_parameter_spec4837);
                    default_value_part();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "parameter_spec"



    // $ANTLR start "exception_declaration"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:565:1: exception_declaration : ^( EXCEPTION_DECLARE exception_name ) ;
    public final void exception_declaration() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:566:5: ( ^( EXCEPTION_DECLARE exception_name ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:566:10: ^( EXCEPTION_DECLARE exception_name )
            {
            match(input,EXCEPTION_DECLARE,FOLLOW_EXCEPTION_DECLARE_in_exception_declaration4861); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_exception_name_in_exception_declaration4863);
            exception_name();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "exception_declaration"



    // $ANTLR start "pragma_declaration"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:569:1: pragma_declaration : ^( PRAGMA_DECLARE ( SERIALLY_REUSABLE_VK | AUTONOMOUS_TRANSACTION_VK | ^( EXCEPTION_INIT_VK exception_name constant ) | ^( INLINE_VK id expression ) | ^( RESTRICT_REFERENCES_VK ( SQL92_RESERVED_DEFAULT )? ( id )* ) ) ) ;
    public final void pragma_declaration() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:570:5: ( ^( PRAGMA_DECLARE ( SERIALLY_REUSABLE_VK | AUTONOMOUS_TRANSACTION_VK | ^( EXCEPTION_INIT_VK exception_name constant ) | ^( INLINE_VK id expression ) | ^( RESTRICT_REFERENCES_VK ( SQL92_RESERVED_DEFAULT )? ( id )* ) ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:570:10: ^( PRAGMA_DECLARE ( SERIALLY_REUSABLE_VK | AUTONOMOUS_TRANSACTION_VK | ^( EXCEPTION_INIT_VK exception_name constant ) | ^( INLINE_VK id expression ) | ^( RESTRICT_REFERENCES_VK ( SQL92_RESERVED_DEFAULT )? ( id )* ) ) )
            {
            match(input,PRAGMA_DECLARE,FOLLOW_PRAGMA_DECLARE_in_pragma_declaration4898); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:571:13: ( SERIALLY_REUSABLE_VK | AUTONOMOUS_TRANSACTION_VK | ^( EXCEPTION_INIT_VK exception_name constant ) | ^( INLINE_VK id expression ) | ^( RESTRICT_REFERENCES_VK ( SQL92_RESERVED_DEFAULT )? ( id )* ) )
            int alt166=5;
            switch ( input.LA(1) ) {
            case SERIALLY_REUSABLE_VK:
                {
                alt166=1;
                }
                break;
            case AUTONOMOUS_TRANSACTION_VK:
                {
                alt166=2;
                }
                break;
            case EXCEPTION_INIT_VK:
                {
                alt166=3;
                }
                break;
            case INLINE_VK:
                {
                alt166=4;
                }
                break;
            case RESTRICT_REFERENCES_VK:
                {
                alt166=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 166, 0, input);

                throw nvae;

            }

            switch (alt166) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:571:18: SERIALLY_REUSABLE_VK
                    {
                    match(input,SERIALLY_REUSABLE_VK,FOLLOW_SERIALLY_REUSABLE_VK_in_pragma_declaration4918); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:572:19: AUTONOMOUS_TRANSACTION_VK
                    {
                    match(input,AUTONOMOUS_TRANSACTION_VK,FOLLOW_AUTONOMOUS_TRANSACTION_VK_in_pragma_declaration4938); 

                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:573:18: ^( EXCEPTION_INIT_VK exception_name constant )
                    {
                    match(input,EXCEPTION_INIT_VK,FOLLOW_EXCEPTION_INIT_VK_in_pragma_declaration4958); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_exception_name_in_pragma_declaration4960);
                    exception_name();

                    state._fsp--;


                    pushFollow(FOLLOW_constant_in_pragma_declaration4962);
                    constant();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:574:18: ^( INLINE_VK id expression )
                    {
                    match(input,INLINE_VK,FOLLOW_INLINE_VK_in_pragma_declaration4983); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_id_in_pragma_declaration4985);
                    id();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_in_pragma_declaration4987);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:575:18: ^( RESTRICT_REFERENCES_VK ( SQL92_RESERVED_DEFAULT )? ( id )* )
                    {
                    match(input,RESTRICT_REFERENCES_VK,FOLLOW_RESTRICT_REFERENCES_VK_in_pragma_declaration5008); 

                    if ( input.LA(1)==Token.DOWN ) {
                        match(input, Token.DOWN, null); 
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:575:43: ( SQL92_RESERVED_DEFAULT )?
                        int alt164=2;
                        int LA164_0 = input.LA(1);

                        if ( (LA164_0==SQL92_RESERVED_DEFAULT) ) {
                            alt164=1;
                        }
                        switch (alt164) {
                            case 1 :
                                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:575:43: SQL92_RESERVED_DEFAULT
                                {
                                match(input,SQL92_RESERVED_DEFAULT,FOLLOW_SQL92_RESERVED_DEFAULT_in_pragma_declaration5010); 

                                }
                                break;

                        }


                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:575:67: ( id )*
                        loop165:
                        do {
                            int alt165=2;
                            int LA165_0 = input.LA(1);

                            if ( (LA165_0==CHAR_SET_NAME||LA165_0==ID) ) {
                                alt165=1;
                            }


                            switch (alt165) {
                        	case 1 :
                        	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:575:67: id
                        	    {
                        	    pushFollow(FOLLOW_id_in_pragma_declaration5013);
                        	    id();

                        	    state._fsp--;


                        	    }
                        	    break;

                        	default :
                        	    break loop165;
                            }
                        } while (true);


                        match(input, Token.UP, null); 
                    }


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "pragma_declaration"



    // $ANTLR start "record_declaration"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:580:1: record_declaration : ( record_type_dec | record_var_dec );
    public final void record_declaration() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:581:5: ( record_type_dec | record_var_dec )
            int alt167=2;
            int LA167_0 = input.LA(1);

            if ( (LA167_0==RECORD_TYPE_DECLARE) ) {
                alt167=1;
            }
            else if ( (LA167_0==RECORD_VAR_DECLARE) ) {
                alt167=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 167, 0, input);

                throw nvae;

            }
            switch (alt167) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:581:10: record_type_dec
                    {
                    pushFollow(FOLLOW_record_type_dec_in_record_declaration5059);
                    record_type_dec();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:582:10: record_var_dec
                    {
                    pushFollow(FOLLOW_record_var_dec_in_record_declaration5070);
                    record_var_dec();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "record_declaration"



    // $ANTLR start "record_type_dec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:588:1: record_type_dec : ^( RECORD_TYPE_DECLARE type_name ( REF_VK )? ( type_spec )? ^( FIELDS ( field_spec )* ) ) ;
    public final void record_type_dec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:589:5: ( ^( RECORD_TYPE_DECLARE type_name ( REF_VK )? ( type_spec )? ^( FIELDS ( field_spec )* ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:589:10: ^( RECORD_TYPE_DECLARE type_name ( REF_VK )? ( type_spec )? ^( FIELDS ( field_spec )* ) )
            {
            match(input,RECORD_TYPE_DECLARE,FOLLOW_RECORD_TYPE_DECLARE_in_record_type_dec5094); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_type_name_in_record_type_dec5096);
            type_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:589:42: ( REF_VK )?
            int alt168=2;
            int LA168_0 = input.LA(1);

            if ( (LA168_0==REF_VK) ) {
                alt168=1;
            }
            switch (alt168) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:589:42: REF_VK
                    {
                    match(input,REF_VK,FOLLOW_REF_VK_in_record_type_dec5098); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:589:50: ( type_spec )?
            int alt169=2;
            int LA169_0 = input.LA(1);

            if ( (LA169_0==CUSTOM_TYPE||LA169_0==INTERVAL_DATATYPE||LA169_0==NATIVE_DATATYPE) ) {
                alt169=1;
            }
            switch (alt169) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:589:50: type_spec
                    {
                    pushFollow(FOLLOW_type_spec_in_record_type_dec5101);
                    type_spec();

                    state._fsp--;


                    }
                    break;

            }


            match(input,FIELDS,FOLLOW_FIELDS_in_record_type_dec5105); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:589:70: ( field_spec )*
                loop170:
                do {
                    int alt170=2;
                    int LA170_0 = input.LA(1);

                    if ( (LA170_0==FIELD_SPEC) ) {
                        alt170=1;
                    }


                    switch (alt170) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:589:70: field_spec
                	    {
                	    pushFollow(FOLLOW_field_spec_in_record_type_dec5107);
                	    field_spec();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop170;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "record_type_dec"



    // $ANTLR start "field_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:592:1: field_spec : ^( FIELD_SPEC column_name ( type_spec )? ( SQL92_RESERVED_NULL )? ( default_value_part )? ) ;
    public final void field_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:593:5: ( ^( FIELD_SPEC column_name ( type_spec )? ( SQL92_RESERVED_NULL )? ( default_value_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:593:10: ^( FIELD_SPEC column_name ( type_spec )? ( SQL92_RESERVED_NULL )? ( default_value_part )? )
            {
            match(input,FIELD_SPEC,FOLLOW_FIELD_SPEC_in_field_spec5131); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_column_name_in_field_spec5133);
            column_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:593:35: ( type_spec )?
            int alt171=2;
            int LA171_0 = input.LA(1);

            if ( (LA171_0==CUSTOM_TYPE||LA171_0==INTERVAL_DATATYPE||LA171_0==NATIVE_DATATYPE) ) {
                alt171=1;
            }
            switch (alt171) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:593:35: type_spec
                    {
                    pushFollow(FOLLOW_type_spec_in_field_spec5135);
                    type_spec();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:593:46: ( SQL92_RESERVED_NULL )?
            int alt172=2;
            int LA172_0 = input.LA(1);

            if ( (LA172_0==SQL92_RESERVED_NULL) ) {
                alt172=1;
            }
            switch (alt172) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:593:46: SQL92_RESERVED_NULL
                    {
                    match(input,SQL92_RESERVED_NULL,FOLLOW_SQL92_RESERVED_NULL_in_field_spec5138); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:593:67: ( default_value_part )?
            int alt173=2;
            int LA173_0 = input.LA(1);

            if ( (LA173_0==DEFAULT_VALUE) ) {
                alt173=1;
            }
            switch (alt173) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:593:67: default_value_part
                    {
                    pushFollow(FOLLOW_default_value_part_in_field_spec5141);
                    default_value_part();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "field_spec"



    // $ANTLR start "record_var_dec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:596:1: record_var_dec : ^( RECORD_VAR_DECLARE record_name type_name ( PERCENT_ROWTYPE_VK | PERCENT_TYPE_VK ) ) ;
    public final void record_var_dec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:597:5: ( ^( RECORD_VAR_DECLARE record_name type_name ( PERCENT_ROWTYPE_VK | PERCENT_TYPE_VK ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:597:10: ^( RECORD_VAR_DECLARE record_name type_name ( PERCENT_ROWTYPE_VK | PERCENT_TYPE_VK ) )
            {
            match(input,RECORD_VAR_DECLARE,FOLLOW_RECORD_VAR_DECLARE_in_record_var_dec5164); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_record_name_in_record_var_dec5166);
            record_name();

            state._fsp--;


            pushFollow(FOLLOW_type_name_in_record_var_dec5168);
            type_name();

            state._fsp--;


            if ( (input.LA(1) >= PERCENT_ROWTYPE_VK && input.LA(1) <= PERCENT_TYPE_VK) ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "record_var_dec"



    // $ANTLR start "table_declaration"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:602:1: table_declaration : ( table_type_dec | table_var_dec );
    public final void table_declaration() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:603:5: ( table_type_dec | table_var_dec )
            int alt174=2;
            int LA174_0 = input.LA(1);

            if ( (LA174_0==TABLE_TYPE_DECLARE) ) {
                alt174=1;
            }
            else if ( (LA174_0==TABLE_VAR_DECLARE) ) {
                alt174=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 174, 0, input);

                throw nvae;

            }
            switch (alt174) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:603:10: table_type_dec
                    {
                    pushFollow(FOLLOW_table_type_dec_in_table_declaration5197);
                    table_type_dec();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:604:10: table_var_dec
                    {
                    pushFollow(FOLLOW_table_var_dec_in_table_declaration5208);
                    table_var_dec();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "table_declaration"



    // $ANTLR start "table_type_dec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:607:1: table_type_dec : ^( TABLE_TYPE_DECLARE type_name ( varray_type_def | ( SQL92_RESERVED_NULL )? ^( SQL92_RESERVED_TABLE type_spec ( table_indexed_by_part )? ) ) ) ;
    public final void table_type_dec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:608:5: ( ^( TABLE_TYPE_DECLARE type_name ( varray_type_def | ( SQL92_RESERVED_NULL )? ^( SQL92_RESERVED_TABLE type_spec ( table_indexed_by_part )? ) ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:608:10: ^( TABLE_TYPE_DECLARE type_name ( varray_type_def | ( SQL92_RESERVED_NULL )? ^( SQL92_RESERVED_TABLE type_spec ( table_indexed_by_part )? ) ) )
            {
            match(input,TABLE_TYPE_DECLARE,FOLLOW_TABLE_TYPE_DECLARE_in_table_type_dec5229); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_type_name_in_table_type_dec5231);
            type_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:609:13: ( varray_type_def | ( SQL92_RESERVED_NULL )? ^( SQL92_RESERVED_TABLE type_spec ( table_indexed_by_part )? ) )
            int alt177=2;
            switch ( input.LA(1) ) {
            case SQL92_RESERVED_NULL:
                {
                int LA177_1 = input.LA(2);

                if ( (LA177_1==VARR_ARRAY_DEF) ) {
                    alt177=1;
                }
                else if ( (LA177_1==SQL92_RESERVED_TABLE) ) {
                    alt177=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 177, 1, input);

                    throw nvae;

                }
                }
                break;
            case VARR_ARRAY_DEF:
                {
                alt177=1;
                }
                break;
            case SQL92_RESERVED_TABLE:
                {
                alt177=2;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 177, 0, input);

                throw nvae;

            }

            switch (alt177) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:609:18: varray_type_def
                    {
                    pushFollow(FOLLOW_varray_type_def_in_table_type_dec5251);
                    varray_type_def();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:610:18: ( SQL92_RESERVED_NULL )? ^( SQL92_RESERVED_TABLE type_spec ( table_indexed_by_part )? )
                    {
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:610:18: ( SQL92_RESERVED_NULL )?
                    int alt175=2;
                    int LA175_0 = input.LA(1);

                    if ( (LA175_0==SQL92_RESERVED_NULL) ) {
                        alt175=1;
                    }
                    switch (alt175) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:610:18: SQL92_RESERVED_NULL
                            {
                            match(input,SQL92_RESERVED_NULL,FOLLOW_SQL92_RESERVED_NULL_in_table_type_dec5270); 

                            }
                            break;

                    }


                    match(input,SQL92_RESERVED_TABLE,FOLLOW_SQL92_RESERVED_TABLE_in_table_type_dec5274); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_type_spec_in_table_type_dec5276);
                    type_spec();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:610:72: ( table_indexed_by_part )?
                    int alt176=2;
                    int LA176_0 = input.LA(1);

                    if ( (LA176_0==INDEXED_BY) ) {
                        alt176=1;
                    }
                    switch (alt176) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:610:72: table_indexed_by_part
                            {
                            pushFollow(FOLLOW_table_indexed_by_part_in_table_type_dec5278);
                            table_indexed_by_part();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "table_type_dec"



    // $ANTLR start "table_indexed_by_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:615:1: table_indexed_by_part : ^( INDEXED_BY type_spec ) ;
    public final void table_indexed_by_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:616:5: ( ^( INDEXED_BY type_spec ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:616:10: ^( INDEXED_BY type_spec )
            {
            match(input,INDEXED_BY,FOLLOW_INDEXED_BY_in_table_indexed_by_part5325); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_type_spec_in_table_indexed_by_part5327);
            type_spec();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "table_indexed_by_part"



    // $ANTLR start "varray_type_def"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:619:1: varray_type_def : ( SQL92_RESERVED_NULL )? ^( VARR_ARRAY_DEF expression type_spec ) ;
    public final void varray_type_def() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:620:5: ( ( SQL92_RESERVED_NULL )? ^( VARR_ARRAY_DEF expression type_spec ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:620:10: ( SQL92_RESERVED_NULL )? ^( VARR_ARRAY_DEF expression type_spec )
            {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:620:10: ( SQL92_RESERVED_NULL )?
            int alt178=2;
            int LA178_0 = input.LA(1);

            if ( (LA178_0==SQL92_RESERVED_NULL) ) {
                alt178=1;
            }
            switch (alt178) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:620:10: SQL92_RESERVED_NULL
                    {
                    match(input,SQL92_RESERVED_NULL,FOLLOW_SQL92_RESERVED_NULL_in_varray_type_def5348); 

                    }
                    break;

            }


            match(input,VARR_ARRAY_DEF,FOLLOW_VARR_ARRAY_DEF_in_varray_type_def5352); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_varray_type_def5354);
            expression();

            state._fsp--;


            pushFollow(FOLLOW_type_spec_in_varray_type_def5356);
            type_spec();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "varray_type_def"



    // $ANTLR start "table_var_dec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:623:1: table_var_dec : ^( TABLE_VAR_DECLARE table_var_name type_spec ) ;
    public final void table_var_dec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:624:5: ( ^( TABLE_VAR_DECLARE table_var_name type_spec ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:624:10: ^( TABLE_VAR_DECLARE table_var_name type_spec )
            {
            match(input,TABLE_VAR_DECLARE,FOLLOW_TABLE_VAR_DECLARE_in_table_var_dec5378); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_table_var_name_in_table_var_dec5380);
            table_var_name();

            state._fsp--;


            pushFollow(FOLLOW_type_spec_in_table_var_dec5382);
            type_spec();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "table_var_dec"



    // $ANTLR start "seq_of_statements"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:631:1: seq_of_statements : ^( STATEMENTS ( statement )+ ) ;
    public final void seq_of_statements() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:632:5: ( ^( STATEMENTS ( statement )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:632:11: ^( STATEMENTS ( statement )+ )
            {
            match(input,STATEMENTS,FOLLOW_STATEMENTS_in_seq_of_statements5409); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:632:24: ( statement )+
            int cnt179=0;
            loop179:
            do {
                int alt179=2;
                int LA179_0 = input.LA(1);

                if ( (LA179_0==PLSQL_RESERVED_IF||LA179_0==PLSQL_RESERVED_LOCK||LA179_0==SQL92_RESERVED_DELETE||LA179_0==SQL92_RESERVED_FETCH||LA179_0==SQL92_RESERVED_GOTO||LA179_0==SQL92_RESERVED_INSERT||LA179_0==SQL92_RESERVED_NULL||LA179_0==SQL92_RESERVED_UPDATE||LA179_0==ASSIGN||LA179_0==CLOSE_VK||LA179_0==COMMIT_VK||LA179_0==CONTINUE_VK||(LA179_0 >= EXECUTE_VK && LA179_0 <= EXIT_VK)||LA179_0==FORALL_VK||LA179_0==LOOP_VK||LA179_0==MERGE_VK||LA179_0==OPEN_VK||LA179_0==RAISE_VK||LA179_0==RETURN_VK||LA179_0==ROLLBACK_VK||LA179_0==ROUTINE_CALL||LA179_0==SAVEPOINT_VK||LA179_0==SEARCHED_CASE||LA179_0==SELECT_STATEMENT||LA179_0==SIMPLE_CASE||(LA179_0 >= BLOCK && LA179_0 <= BODY)||LA179_0==FOR_LOOP||LA179_0==LABEL_DECLARE||LA179_0==SET_CONSTRAINT||LA179_0==SET_TRANSACTION||LA179_0==WHILE_LOOP) ) {
                    alt179=1;
                }


                switch (alt179) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:632:24: statement
            	    {
            	    pushFollow(FOLLOW_statement_in_seq_of_statements5411);
            	    statement();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt179 >= 1 ) break loop179;
                        EarlyExitException eee =
                            new EarlyExitException(179, input);
                        throw eee;
                }
                cnt179++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "seq_of_statements"



    // $ANTLR start "statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:635:1: statement : ( label_declaration | assignment_statement | continue_statement | exit_statement | goto_statement | if_statement | loop_statement | forall_statement | null_statement | raise_statement | return_statement | case_statement | sql_statement | function_call | body | block );
    public final void statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:636:5: ( label_declaration | assignment_statement | continue_statement | exit_statement | goto_statement | if_statement | loop_statement | forall_statement | null_statement | raise_statement | return_statement | case_statement | sql_statement | function_call | body | block )
            int alt180=16;
            switch ( input.LA(1) ) {
            case LABEL_DECLARE:
                {
                alt180=1;
                }
                break;
            case ASSIGN:
                {
                alt180=2;
                }
                break;
            case CONTINUE_VK:
                {
                alt180=3;
                }
                break;
            case EXIT_VK:
                {
                alt180=4;
                }
                break;
            case SQL92_RESERVED_GOTO:
                {
                alt180=5;
                }
                break;
            case PLSQL_RESERVED_IF:
                {
                alt180=6;
                }
                break;
            case LOOP_VK:
            case FOR_LOOP:
            case WHILE_LOOP:
                {
                alt180=7;
                }
                break;
            case FORALL_VK:
                {
                alt180=8;
                }
                break;
            case SQL92_RESERVED_NULL:
                {
                alt180=9;
                }
                break;
            case RAISE_VK:
                {
                alt180=10;
                }
                break;
            case RETURN_VK:
                {
                alt180=11;
                }
                break;
            case SEARCHED_CASE:
            case SIMPLE_CASE:
                {
                alt180=12;
                }
                break;
            case PLSQL_RESERVED_LOCK:
            case SQL92_RESERVED_DELETE:
            case SQL92_RESERVED_FETCH:
            case SQL92_RESERVED_INSERT:
            case SQL92_RESERVED_UPDATE:
            case CLOSE_VK:
            case COMMIT_VK:
            case EXECUTE_VK:
            case MERGE_VK:
            case OPEN_VK:
            case ROLLBACK_VK:
            case SAVEPOINT_VK:
            case SELECT_STATEMENT:
            case SET_CONSTRAINT:
            case SET_TRANSACTION:
                {
                alt180=13;
                }
                break;
            case ROUTINE_CALL:
                {
                alt180=14;
                }
                break;
            case BODY:
                {
                alt180=15;
                }
                break;
            case BLOCK:
                {
                alt180=16;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 180, 0, input);

                throw nvae;

            }

            switch (alt180) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:636:10: label_declaration
                    {
                    pushFollow(FOLLOW_label_declaration_in_statement5433);
                    label_declaration();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:637:10: assignment_statement
                    {
                    pushFollow(FOLLOW_assignment_statement_in_statement5444);
                    assignment_statement();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:638:10: continue_statement
                    {
                    pushFollow(FOLLOW_continue_statement_in_statement5455);
                    continue_statement();

                    state._fsp--;


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:639:10: exit_statement
                    {
                    pushFollow(FOLLOW_exit_statement_in_statement5466);
                    exit_statement();

                    state._fsp--;


                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:640:10: goto_statement
                    {
                    pushFollow(FOLLOW_goto_statement_in_statement5477);
                    goto_statement();

                    state._fsp--;


                    }
                    break;
                case 6 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:641:10: if_statement
                    {
                    pushFollow(FOLLOW_if_statement_in_statement5488);
                    if_statement();

                    state._fsp--;


                    }
                    break;
                case 7 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:642:10: loop_statement
                    {
                    pushFollow(FOLLOW_loop_statement_in_statement5499);
                    loop_statement();

                    state._fsp--;


                    }
                    break;
                case 8 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:643:10: forall_statement
                    {
                    pushFollow(FOLLOW_forall_statement_in_statement5510);
                    forall_statement();

                    state._fsp--;


                    }
                    break;
                case 9 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:644:10: null_statement
                    {
                    pushFollow(FOLLOW_null_statement_in_statement5521);
                    null_statement();

                    state._fsp--;


                    }
                    break;
                case 10 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:645:10: raise_statement
                    {
                    pushFollow(FOLLOW_raise_statement_in_statement5532);
                    raise_statement();

                    state._fsp--;


                    }
                    break;
                case 11 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:646:10: return_statement
                    {
                    pushFollow(FOLLOW_return_statement_in_statement5543);
                    return_statement();

                    state._fsp--;


                    }
                    break;
                case 12 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:647:10: case_statement
                    {
                    pushFollow(FOLLOW_case_statement_in_statement5554);
                    case_statement();

                    state._fsp--;


                    }
                    break;
                case 13 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:648:10: sql_statement
                    {
                    pushFollow(FOLLOW_sql_statement_in_statement5565);
                    sql_statement();

                    state._fsp--;


                    }
                    break;
                case 14 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:649:10: function_call
                    {
                    pushFollow(FOLLOW_function_call_in_statement5576);
                    function_call();

                    state._fsp--;


                    }
                    break;
                case 15 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:650:10: body
                    {
                    pushFollow(FOLLOW_body_in_statement5587);
                    body();

                    state._fsp--;


                    }
                    break;
                case 16 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:651:10: block
                    {
                    pushFollow(FOLLOW_block_in_statement5598);
                    block();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "statement"



    // $ANTLR start "label_declaration"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:654:1: label_declaration : ^( LABEL_DECLARE label_name ) ;
    public final void label_declaration() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:655:5: ( ^( LABEL_DECLARE label_name ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:655:10: ^( LABEL_DECLARE label_name )
            {
            match(input,LABEL_DECLARE,FOLLOW_LABEL_DECLARE_in_label_declaration5619); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_label_name_in_label_declaration5621);
            label_name();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "label_declaration"



    // $ANTLR start "assignment_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:658:1: assignment_statement : ^( ASSIGN general_element expression ) ;
    public final void assignment_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:659:5: ( ^( ASSIGN general_element expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:659:11: ^( ASSIGN general_element expression )
            {
            match(input,ASSIGN,FOLLOW_ASSIGN_in_assignment_statement5644); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_general_element_in_assignment_statement5646);
            general_element();

            state._fsp--;


            pushFollow(FOLLOW_expression_in_assignment_statement5648);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "assignment_statement"



    // $ANTLR start "continue_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:662:1: continue_statement : ^( CONTINUE_VK ( label_name )? ( general_when )? ) ;
    public final void continue_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:663:5: ( ^( CONTINUE_VK ( label_name )? ( general_when )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:663:10: ^( CONTINUE_VK ( label_name )? ( general_when )? )
            {
            match(input,CONTINUE_VK,FOLLOW_CONTINUE_VK_in_continue_statement5670); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:663:24: ( label_name )?
                int alt181=2;
                int LA181_0 = input.LA(1);

                if ( (LA181_0==LABEL_NAME) ) {
                    alt181=1;
                }
                switch (alt181) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:663:24: label_name
                        {
                        pushFollow(FOLLOW_label_name_in_continue_statement5672);
                        label_name();

                        state._fsp--;


                        }
                        break;

                }


                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:663:36: ( general_when )?
                int alt182=2;
                int LA182_0 = input.LA(1);

                if ( (LA182_0==SQL92_RESERVED_WHEN) ) {
                    alt182=1;
                }
                switch (alt182) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:663:36: general_when
                        {
                        pushFollow(FOLLOW_general_when_in_continue_statement5675);
                        general_when();

                        state._fsp--;


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "continue_statement"



    // $ANTLR start "general_when"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:666:1: general_when : ^( SQL92_RESERVED_WHEN expression ) ;
    public final void general_when() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:667:5: ( ^( SQL92_RESERVED_WHEN expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:667:10: ^( SQL92_RESERVED_WHEN expression )
            {
            match(input,SQL92_RESERVED_WHEN,FOLLOW_SQL92_RESERVED_WHEN_in_general_when5698); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_general_when5700);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "general_when"



    // $ANTLR start "exit_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:670:1: exit_statement : ^( EXIT_VK ( label_name )? ( general_when )? ) ;
    public final void exit_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:671:5: ( ^( EXIT_VK ( label_name )? ( general_when )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:671:10: ^( EXIT_VK ( label_name )? ( general_when )? )
            {
            match(input,EXIT_VK,FOLLOW_EXIT_VK_in_exit_statement5722); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:671:20: ( label_name )?
                int alt183=2;
                int LA183_0 = input.LA(1);

                if ( (LA183_0==LABEL_NAME) ) {
                    alt183=1;
                }
                switch (alt183) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:671:20: label_name
                        {
                        pushFollow(FOLLOW_label_name_in_exit_statement5724);
                        label_name();

                        state._fsp--;


                        }
                        break;

                }


                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:671:32: ( general_when )?
                int alt184=2;
                int LA184_0 = input.LA(1);

                if ( (LA184_0==SQL92_RESERVED_WHEN) ) {
                    alt184=1;
                }
                switch (alt184) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:671:32: general_when
                        {
                        pushFollow(FOLLOW_general_when_in_exit_statement5727);
                        general_when();

                        state._fsp--;


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "exit_statement"



    // $ANTLR start "goto_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:674:1: goto_statement : ^( SQL92_RESERVED_GOTO label_name ) ;
    public final void goto_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:675:5: ( ^( SQL92_RESERVED_GOTO label_name ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:675:10: ^( SQL92_RESERVED_GOTO label_name )
            {
            match(input,SQL92_RESERVED_GOTO,FOLLOW_SQL92_RESERVED_GOTO_in_goto_statement5750); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_label_name_in_goto_statement5752);
            label_name();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "goto_statement"



    // $ANTLR start "if_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:678:1: if_statement : ^( PLSQL_RESERVED_IF expression seq_of_statements ( elsif_part )* ( else_part )? ) ;
    public final void if_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:679:5: ( ^( PLSQL_RESERVED_IF expression seq_of_statements ( elsif_part )* ( else_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:679:10: ^( PLSQL_RESERVED_IF expression seq_of_statements ( elsif_part )* ( else_part )? )
            {
            match(input,PLSQL_RESERVED_IF,FOLLOW_PLSQL_RESERVED_IF_in_if_statement5774); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_if_statement5776);
            expression();

            state._fsp--;


            pushFollow(FOLLOW_seq_of_statements_in_if_statement5778);
            seq_of_statements();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:679:59: ( elsif_part )*
            loop185:
            do {
                int alt185=2;
                int LA185_0 = input.LA(1);

                if ( (LA185_0==PLSQL_NON_RESERVED_ELSIF) ) {
                    alt185=1;
                }


                switch (alt185) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:679:59: elsif_part
            	    {
            	    pushFollow(FOLLOW_elsif_part_in_if_statement5780);
            	    elsif_part();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop185;
                }
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:679:71: ( else_part )?
            int alt186=2;
            int LA186_0 = input.LA(1);

            if ( (LA186_0==SQL92_RESERVED_ELSE) ) {
                alt186=1;
            }
            switch (alt186) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:679:71: else_part
                    {
                    pushFollow(FOLLOW_else_part_in_if_statement5783);
                    else_part();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "if_statement"



    // $ANTLR start "elsif_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:682:1: elsif_part : ^( PLSQL_NON_RESERVED_ELSIF expression seq_of_statements ) ;
    public final void elsif_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:683:5: ( ^( PLSQL_NON_RESERVED_ELSIF expression seq_of_statements ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:683:10: ^( PLSQL_NON_RESERVED_ELSIF expression seq_of_statements )
            {
            match(input,PLSQL_NON_RESERVED_ELSIF,FOLLOW_PLSQL_NON_RESERVED_ELSIF_in_elsif_part5806); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_elsif_part5808);
            expression();

            state._fsp--;


            pushFollow(FOLLOW_seq_of_statements_in_elsif_part5810);
            seq_of_statements();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "elsif_part"



    // $ANTLR start "else_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:686:1: else_part : ^( SQL92_RESERVED_ELSE seq_of_statements ) ;
    public final void else_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:687:5: ( ^( SQL92_RESERVED_ELSE seq_of_statements ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:687:10: ^( SQL92_RESERVED_ELSE seq_of_statements )
            {
            match(input,SQL92_RESERVED_ELSE,FOLLOW_SQL92_RESERVED_ELSE_in_else_part5832); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_seq_of_statements_in_else_part5834);
            seq_of_statements();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "else_part"



    // $ANTLR start "loop_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:690:1: loop_statement : ( ^( WHILE_LOOP ( label_name )* expression seq_of_statements ) | ^( FOR_LOOP ( label_name )* cursor_loop_param seq_of_statements ) | ^( LOOP_VK ( label_name )* seq_of_statements ) );
    public final void loop_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:691:5: ( ^( WHILE_LOOP ( label_name )* expression seq_of_statements ) | ^( FOR_LOOP ( label_name )* cursor_loop_param seq_of_statements ) | ^( LOOP_VK ( label_name )* seq_of_statements ) )
            int alt190=3;
            switch ( input.LA(1) ) {
            case WHILE_LOOP:
                {
                alt190=1;
                }
                break;
            case FOR_LOOP:
                {
                alt190=2;
                }
                break;
            case LOOP_VK:
                {
                alt190=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 190, 0, input);

                throw nvae;

            }

            switch (alt190) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:691:10: ^( WHILE_LOOP ( label_name )* expression seq_of_statements )
                    {
                    match(input,WHILE_LOOP,FOLLOW_WHILE_LOOP_in_loop_statement5856); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:691:23: ( label_name )*
                    loop187:
                    do {
                        int alt187=2;
                        int LA187_0 = input.LA(1);

                        if ( (LA187_0==LABEL_NAME) ) {
                            alt187=1;
                        }


                        switch (alt187) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:691:23: label_name
                    	    {
                    	    pushFollow(FOLLOW_label_name_in_loop_statement5858);
                    	    label_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop187;
                        }
                    } while (true);


                    pushFollow(FOLLOW_expression_in_loop_statement5861);
                    expression();

                    state._fsp--;


                    pushFollow(FOLLOW_seq_of_statements_in_loop_statement5863);
                    seq_of_statements();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:692:10: ^( FOR_LOOP ( label_name )* cursor_loop_param seq_of_statements )
                    {
                    match(input,FOR_LOOP,FOLLOW_FOR_LOOP_in_loop_statement5876); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:692:21: ( label_name )*
                    loop188:
                    do {
                        int alt188=2;
                        int LA188_0 = input.LA(1);

                        if ( (LA188_0==LABEL_NAME) ) {
                            alt188=1;
                        }


                        switch (alt188) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:692:21: label_name
                    	    {
                    	    pushFollow(FOLLOW_label_name_in_loop_statement5878);
                    	    label_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop188;
                        }
                    } while (true);


                    pushFollow(FOLLOW_cursor_loop_param_in_loop_statement5881);
                    cursor_loop_param();

                    state._fsp--;


                    pushFollow(FOLLOW_seq_of_statements_in_loop_statement5883);
                    seq_of_statements();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:693:10: ^( LOOP_VK ( label_name )* seq_of_statements )
                    {
                    match(input,LOOP_VK,FOLLOW_LOOP_VK_in_loop_statement5896); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:693:20: ( label_name )*
                    loop189:
                    do {
                        int alt189=2;
                        int LA189_0 = input.LA(1);

                        if ( (LA189_0==LABEL_NAME) ) {
                            alt189=1;
                        }


                        switch (alt189) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:693:20: label_name
                    	    {
                    	    pushFollow(FOLLOW_label_name_in_loop_statement5898);
                    	    label_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop189;
                        }
                    } while (true);


                    pushFollow(FOLLOW_seq_of_statements_in_loop_statement5901);
                    seq_of_statements();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "loop_statement"



    // $ANTLR start "cursor_loop_param"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:698:1: cursor_loop_param : ( ^( INDEXED_FOR index_name ( REVERSE_VK )? ^( SIMPLE_BOUND expression expression ) ) | ^( CURSOR_BASED_FOR record_name cursor_name ( expression_list )? ) | ^( SELECT_BASED_FOR record_name select_statement ) );
    public final void cursor_loop_param() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:699:5: ( ^( INDEXED_FOR index_name ( REVERSE_VK )? ^( SIMPLE_BOUND expression expression ) ) | ^( CURSOR_BASED_FOR record_name cursor_name ( expression_list )? ) | ^( SELECT_BASED_FOR record_name select_statement ) )
            int alt193=3;
            switch ( input.LA(1) ) {
            case INDEXED_FOR:
                {
                alt193=1;
                }
                break;
            case CURSOR_BASED_FOR:
                {
                alt193=2;
                }
                break;
            case SELECT_BASED_FOR:
                {
                alt193=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 193, 0, input);

                throw nvae;

            }

            switch (alt193) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:699:10: ^( INDEXED_FOR index_name ( REVERSE_VK )? ^( SIMPLE_BOUND expression expression ) )
                    {
                    match(input,INDEXED_FOR,FOLLOW_INDEXED_FOR_in_cursor_loop_param5925); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_index_name_in_cursor_loop_param5927);
                    index_name();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:699:35: ( REVERSE_VK )?
                    int alt191=2;
                    int LA191_0 = input.LA(1);

                    if ( (LA191_0==REVERSE_VK) ) {
                        alt191=1;
                    }
                    switch (alt191) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:699:35: REVERSE_VK
                            {
                            match(input,REVERSE_VK,FOLLOW_REVERSE_VK_in_cursor_loop_param5929); 

                            }
                            break;

                    }


                    match(input,SIMPLE_BOUND,FOLLOW_SIMPLE_BOUND_in_cursor_loop_param5933); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_cursor_loop_param5935);
                    expression();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_in_cursor_loop_param5937);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:700:10: ^( CURSOR_BASED_FOR record_name cursor_name ( expression_list )? )
                    {
                    match(input,CURSOR_BASED_FOR,FOLLOW_CURSOR_BASED_FOR_in_cursor_loop_param5951); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_record_name_in_cursor_loop_param5953);
                    record_name();

                    state._fsp--;


                    pushFollow(FOLLOW_cursor_name_in_cursor_loop_param5955);
                    cursor_name();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:700:53: ( expression_list )?
                    int alt192=2;
                    int LA192_0 = input.LA(1);

                    if ( (LA192_0==EXPR_LIST) ) {
                        alt192=1;
                    }
                    switch (alt192) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:700:53: expression_list
                            {
                            pushFollow(FOLLOW_expression_list_in_cursor_loop_param5957);
                            expression_list();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:701:10: ^( SELECT_BASED_FOR record_name select_statement )
                    {
                    match(input,SELECT_BASED_FOR,FOLLOW_SELECT_BASED_FOR_in_cursor_loop_param5971); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_record_name_in_cursor_loop_param5973);
                    record_name();

                    state._fsp--;


                    pushFollow(FOLLOW_select_statement_in_cursor_loop_param5975);
                    select_statement();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "cursor_loop_param"



    // $ANTLR start "forall_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:706:1: forall_statement : ^( FORALL_VK index_name bounds_clause sql_statement ( EXCEPTIONS_VK )? ) ;
    public final void forall_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:707:5: ( ^( FORALL_VK index_name bounds_clause sql_statement ( EXCEPTIONS_VK )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:707:10: ^( FORALL_VK index_name bounds_clause sql_statement ( EXCEPTIONS_VK )? )
            {
            match(input,FORALL_VK,FOLLOW_FORALL_VK_in_forall_statement5999); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_index_name_in_forall_statement6001);
            index_name();

            state._fsp--;


            pushFollow(FOLLOW_bounds_clause_in_forall_statement6003);
            bounds_clause();

            state._fsp--;


            pushFollow(FOLLOW_sql_statement_in_forall_statement6005);
            sql_statement();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:707:61: ( EXCEPTIONS_VK )?
            int alt194=2;
            int LA194_0 = input.LA(1);

            if ( (LA194_0==EXCEPTIONS_VK) ) {
                alt194=1;
            }
            switch (alt194) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:707:61: EXCEPTIONS_VK
                    {
                    match(input,EXCEPTIONS_VK,FOLLOW_EXCEPTIONS_VK_in_forall_statement6007); 

                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "forall_statement"



    // $ANTLR start "bounds_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:710:1: bounds_clause : ( ^( SIMPLE_BOUND expression expression ) | ^( INDICES_BOUND collection_name ( between_bound )? ) | ^( VALUES_BOUND index_name ) );
    public final void bounds_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:711:5: ( ^( SIMPLE_BOUND expression expression ) | ^( INDICES_BOUND collection_name ( between_bound )? ) | ^( VALUES_BOUND index_name ) )
            int alt196=3;
            switch ( input.LA(1) ) {
            case SIMPLE_BOUND:
                {
                alt196=1;
                }
                break;
            case INDICES_BOUND:
                {
                alt196=2;
                }
                break;
            case VALUES_BOUND:
                {
                alt196=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 196, 0, input);

                throw nvae;

            }

            switch (alt196) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:711:10: ^( SIMPLE_BOUND expression expression )
                    {
                    match(input,SIMPLE_BOUND,FOLLOW_SIMPLE_BOUND_in_bounds_clause6030); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_bounds_clause6032);
                    expression();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_in_bounds_clause6034);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:712:10: ^( INDICES_BOUND collection_name ( between_bound )? )
                    {
                    match(input,INDICES_BOUND,FOLLOW_INDICES_BOUND_in_bounds_clause6047); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_collection_name_in_bounds_clause6049);
                    collection_name();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:712:42: ( between_bound )?
                    int alt195=2;
                    int LA195_0 = input.LA(1);

                    if ( (LA195_0==SQL92_RESERVED_BETWEEN) ) {
                        alt195=1;
                    }
                    switch (alt195) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:712:42: between_bound
                            {
                            pushFollow(FOLLOW_between_bound_in_bounds_clause6051);
                            between_bound();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:713:10: ^( VALUES_BOUND index_name )
                    {
                    match(input,VALUES_BOUND,FOLLOW_VALUES_BOUND_in_bounds_clause6065); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_index_name_in_bounds_clause6067);
                    index_name();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "bounds_clause"



    // $ANTLR start "between_bound"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:716:1: between_bound : ^( SQL92_RESERVED_BETWEEN expression expression ) ;
    public final void between_bound() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:717:5: ( ^( SQL92_RESERVED_BETWEEN expression expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:717:10: ^( SQL92_RESERVED_BETWEEN expression expression )
            {
            match(input,SQL92_RESERVED_BETWEEN,FOLLOW_SQL92_RESERVED_BETWEEN_in_between_bound6090); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_between_bound6092);
            expression();

            state._fsp--;


            pushFollow(FOLLOW_expression_in_between_bound6094);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "between_bound"



    // $ANTLR start "null_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:720:1: null_statement : SQL92_RESERVED_NULL ;
    public final void null_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:721:5: ( SQL92_RESERVED_NULL )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:721:10: SQL92_RESERVED_NULL
            {
            match(input,SQL92_RESERVED_NULL,FOLLOW_SQL92_RESERVED_NULL_in_null_statement6115); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "null_statement"



    // $ANTLR start "raise_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:724:1: raise_statement : ^( RAISE_VK ( exception_name )? ) ;
    public final void raise_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:725:5: ( ^( RAISE_VK ( exception_name )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:725:10: ^( RAISE_VK ( exception_name )? )
            {
            match(input,RAISE_VK,FOLLOW_RAISE_VK_in_raise_statement6136); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:725:21: ( exception_name )?
                int alt197=2;
                int LA197_0 = input.LA(1);

                if ( (LA197_0==EXCEPTION_NAME) ) {
                    alt197=1;
                }
                switch (alt197) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:725:21: exception_name
                        {
                        pushFollow(FOLLOW_exception_name_in_raise_statement6138);
                        exception_name();

                        state._fsp--;


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "raise_statement"



    // $ANTLR start "return_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:728:1: return_statement : ^( RETURN_VK ( expression )? ) ;
    public final void return_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:729:5: ( ^( RETURN_VK ( expression )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:729:10: ^( RETURN_VK ( expression )? )
            {
            match(input,RETURN_VK,FOLLOW_RETURN_VK_in_return_statement6161); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:729:22: ( expression )?
                int alt198=2;
                int LA198_0 = input.LA(1);

                if ( (LA198_0==EXPR||LA198_0==LOGIC_EXPR) ) {
                    alt198=1;
                }
                switch (alt198) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:729:22: expression
                        {
                        pushFollow(FOLLOW_expression_in_return_statement6163);
                        expression();

                        state._fsp--;


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "return_statement"



    // $ANTLR start "function_call"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:732:1: function_call : ^( ROUTINE_CALL routine_name ( function_argument )? ) ;
    public final void function_call() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:733:5: ( ^( ROUTINE_CALL routine_name ( function_argument )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:733:10: ^( ROUTINE_CALL routine_name ( function_argument )? )
            {
            match(input,ROUTINE_CALL,FOLLOW_ROUTINE_CALL_in_function_call6186); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_routine_name_in_function_call6188);
            routine_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:733:38: ( function_argument )?
            int alt199=2;
            int LA199_0 = input.LA(1);

            if ( (LA199_0==ARGUMENTS) ) {
                alt199=1;
            }
            switch (alt199) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:733:38: function_argument
                    {
                    pushFollow(FOLLOW_function_argument_in_function_call6190);
                    function_argument();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "function_call"



    // $ANTLR start "body"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:736:1: body : ^( BODY ( label_name )? seq_of_statements ( exception_clause )? ) ;
    public final void body() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:737:5: ( ^( BODY ( label_name )? seq_of_statements ( exception_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:737:10: ^( BODY ( label_name )? seq_of_statements ( exception_clause )? )
            {
            match(input,BODY,FOLLOW_BODY_in_body6213); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:737:17: ( label_name )?
            int alt200=2;
            int LA200_0 = input.LA(1);

            if ( (LA200_0==LABEL_NAME) ) {
                alt200=1;
            }
            switch (alt200) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:737:17: label_name
                    {
                    pushFollow(FOLLOW_label_name_in_body6215);
                    label_name();

                    state._fsp--;


                    }
                    break;

            }


            pushFollow(FOLLOW_seq_of_statements_in_body6218);
            seq_of_statements();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:737:47: ( exception_clause )?
            int alt201=2;
            int LA201_0 = input.LA(1);

            if ( (LA201_0==SQL92_RESERVED_EXCEPTION) ) {
                alt201=1;
            }
            switch (alt201) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:737:47: exception_clause
                    {
                    pushFollow(FOLLOW_exception_clause_in_body6220);
                    exception_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "body"



    // $ANTLR start "exception_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:742:1: exception_clause : ^( SQL92_RESERVED_EXCEPTION ( exception_handler )+ ) ;
    public final void exception_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:743:5: ( ^( SQL92_RESERVED_EXCEPTION ( exception_handler )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:743:10: ^( SQL92_RESERVED_EXCEPTION ( exception_handler )+ )
            {
            match(input,SQL92_RESERVED_EXCEPTION,FOLLOW_SQL92_RESERVED_EXCEPTION_in_exception_clause6246); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:743:37: ( exception_handler )+
            int cnt202=0;
            loop202:
            do {
                int alt202=2;
                int LA202_0 = input.LA(1);

                if ( (LA202_0==SQL92_RESERVED_WHEN) ) {
                    alt202=1;
                }


                switch (alt202) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:743:37: exception_handler
            	    {
            	    pushFollow(FOLLOW_exception_handler_in_exception_clause6248);
            	    exception_handler();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt202 >= 1 ) break loop202;
                        EarlyExitException eee =
                            new EarlyExitException(202, input);
                        throw eee;
                }
                cnt202++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "exception_clause"



    // $ANTLR start "exception_handler"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:746:1: exception_handler : ^( SQL92_RESERVED_WHEN ( exception_name )+ seq_of_statements ) ;
    public final void exception_handler() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:747:5: ( ^( SQL92_RESERVED_WHEN ( exception_name )+ seq_of_statements ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:747:10: ^( SQL92_RESERVED_WHEN ( exception_name )+ seq_of_statements )
            {
            match(input,SQL92_RESERVED_WHEN,FOLLOW_SQL92_RESERVED_WHEN_in_exception_handler6271); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:747:32: ( exception_name )+
            int cnt203=0;
            loop203:
            do {
                int alt203=2;
                int LA203_0 = input.LA(1);

                if ( (LA203_0==EXCEPTION_NAME) ) {
                    alt203=1;
                }


                switch (alt203) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:747:32: exception_name
            	    {
            	    pushFollow(FOLLOW_exception_name_in_exception_handler6273);
            	    exception_name();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt203 >= 1 ) break loop203;
                        EarlyExitException eee =
                            new EarlyExitException(203, input);
                        throw eee;
                }
                cnt203++;
            } while (true);


            pushFollow(FOLLOW_seq_of_statements_in_exception_handler6276);
            seq_of_statements();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "exception_handler"



    // $ANTLR start "block"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:752:1: block : ^( BLOCK ( declare_spec )* body ) ;
    public final void block() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:753:5: ( ^( BLOCK ( declare_spec )* body ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:753:10: ^( BLOCK ( declare_spec )* body )
            {
            match(input,BLOCK,FOLLOW_BLOCK_in_block6300); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:753:18: ( declare_spec )*
            loop204:
            do {
                int alt204=2;
                int LA204_0 = input.LA(1);

                if ( (LA204_0==CREATE_FUNCTION||LA204_0==CREATE_PROCEDURE||LA204_0==CURSOR_DECLARE||LA204_0==EXCEPTION_DECLARE||LA204_0==PRAGMA_DECLARE||(LA204_0 >= RECORD_TYPE_DECLARE && LA204_0 <= RECORD_VAR_DECLARE)||(LA204_0 >= SUBTYPE_DECLARE && LA204_0 <= TABLE_VAR_DECLARE)||LA204_0==VARIABLE_DECLARE) ) {
                    alt204=1;
                }


                switch (alt204) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:753:18: declare_spec
            	    {
            	    pushFollow(FOLLOW_declare_spec_in_block6302);
            	    declare_spec();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop204;
                }
            } while (true);


            pushFollow(FOLLOW_body_in_block6305);
            body();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "block"



    // $ANTLR start "sql_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:760:1: sql_statement : ( execute_immediate | data_manipulation_language_statements | cursor_manipulation_statements | transaction_control_statements );
    public final void sql_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:761:5: ( execute_immediate | data_manipulation_language_statements | cursor_manipulation_statements | transaction_control_statements )
            int alt205=4;
            switch ( input.LA(1) ) {
            case EXECUTE_VK:
                {
                alt205=1;
                }
                break;
            case PLSQL_RESERVED_LOCK:
            case SQL92_RESERVED_DELETE:
            case SQL92_RESERVED_INSERT:
            case SQL92_RESERVED_UPDATE:
            case MERGE_VK:
            case SELECT_STATEMENT:
                {
                alt205=2;
                }
                break;
            case SQL92_RESERVED_FETCH:
            case CLOSE_VK:
            case OPEN_VK:
                {
                alt205=3;
                }
                break;
            case COMMIT_VK:
            case ROLLBACK_VK:
            case SAVEPOINT_VK:
            case SET_CONSTRAINT:
            case SET_TRANSACTION:
                {
                alt205=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 205, 0, input);

                throw nvae;

            }

            switch (alt205) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:761:10: execute_immediate
                    {
                    pushFollow(FOLLOW_execute_immediate_in_sql_statement6330);
                    execute_immediate();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:762:10: data_manipulation_language_statements
                    {
                    pushFollow(FOLLOW_data_manipulation_language_statements_in_sql_statement6341);
                    data_manipulation_language_statements();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:763:10: cursor_manipulation_statements
                    {
                    pushFollow(FOLLOW_cursor_manipulation_statements_in_sql_statement6352);
                    cursor_manipulation_statements();

                    state._fsp--;


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:764:10: transaction_control_statements
                    {
                    pushFollow(FOLLOW_transaction_control_statements_in_sql_statement6363);
                    transaction_control_statements();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "sql_statement"



    // $ANTLR start "execute_immediate"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:767:1: execute_immediate : ^( EXECUTE_VK expression ( into_clause | using_clause | dynamic_returning_clause )? ) ;
    public final void execute_immediate() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:768:5: ( ^( EXECUTE_VK expression ( into_clause | using_clause | dynamic_returning_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:768:10: ^( EXECUTE_VK expression ( into_clause | using_clause | dynamic_returning_clause )? )
            {
            match(input,EXECUTE_VK,FOLLOW_EXECUTE_VK_in_execute_immediate6384); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_execute_immediate6386);
            expression();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:768:34: ( into_clause | using_clause | dynamic_returning_clause )?
            int alt206=4;
            switch ( input.LA(1) ) {
                case SQL92_RESERVED_INTO:
                case BULK_VK:
                    {
                    alt206=1;
                    }
                    break;
                case PLSQL_NON_RESERVED_USING:
                    {
                    alt206=2;
                    }
                    break;
                case DYNAMIC_RETURN:
                    {
                    alt206=3;
                    }
                    break;
            }

            switch (alt206) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:768:35: into_clause
                    {
                    pushFollow(FOLLOW_into_clause_in_execute_immediate6389);
                    into_clause();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:768:47: using_clause
                    {
                    pushFollow(FOLLOW_using_clause_in_execute_immediate6391);
                    using_clause();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:768:60: dynamic_returning_clause
                    {
                    pushFollow(FOLLOW_dynamic_returning_clause_in_execute_immediate6393);
                    dynamic_returning_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "execute_immediate"



    // $ANTLR start "dynamic_returning_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:772:1: dynamic_returning_clause : ^( DYNAMIC_RETURN into_clause ) ;
    public final void dynamic_returning_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:773:5: ( ^( DYNAMIC_RETURN into_clause ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:773:10: ^( DYNAMIC_RETURN into_clause )
            {
            match(input,DYNAMIC_RETURN,FOLLOW_DYNAMIC_RETURN_in_dynamic_returning_clause6419); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_into_clause_in_dynamic_returning_clause6421);
            into_clause();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "dynamic_returning_clause"



    // $ANTLR start "data_manipulation_language_statements"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:780:1: data_manipulation_language_statements : ( merge_statement | lock_table_statement | select_statement | update_statement | delete_statement | insert_statement );
    public final void data_manipulation_language_statements() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:781:5: ( merge_statement | lock_table_statement | select_statement | update_statement | delete_statement | insert_statement )
            int alt207=6;
            switch ( input.LA(1) ) {
            case MERGE_VK:
                {
                alt207=1;
                }
                break;
            case PLSQL_RESERVED_LOCK:
                {
                alt207=2;
                }
                break;
            case SELECT_STATEMENT:
                {
                alt207=3;
                }
                break;
            case SQL92_RESERVED_UPDATE:
                {
                alt207=4;
                }
                break;
            case SQL92_RESERVED_DELETE:
                {
                alt207=5;
                }
                break;
            case SQL92_RESERVED_INSERT:
                {
                alt207=6;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 207, 0, input);

                throw nvae;

            }

            switch (alt207) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:781:10: merge_statement
                    {
                    pushFollow(FOLLOW_merge_statement_in_data_manipulation_language_statements6446);
                    merge_statement();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:782:10: lock_table_statement
                    {
                    pushFollow(FOLLOW_lock_table_statement_in_data_manipulation_language_statements6457);
                    lock_table_statement();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:783:10: select_statement
                    {
                    pushFollow(FOLLOW_select_statement_in_data_manipulation_language_statements6468);
                    select_statement();

                    state._fsp--;


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:784:11: update_statement
                    {
                    pushFollow(FOLLOW_update_statement_in_data_manipulation_language_statements6480);
                    update_statement();

                    state._fsp--;


                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:785:11: delete_statement
                    {
                    pushFollow(FOLLOW_delete_statement_in_data_manipulation_language_statements6492);
                    delete_statement();

                    state._fsp--;


                    }
                    break;
                case 6 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:786:10: insert_statement
                    {
                    pushFollow(FOLLOW_insert_statement_in_data_manipulation_language_statements6503);
                    insert_statement();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "data_manipulation_language_statements"



    // $ANTLR start "select_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:789:1: select_statement : ^( SELECT_STATEMENT ( subquery_factoring_clause )? subquery ( for_update_clause )* ( order_by_clause )* ) ;
    public final void select_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:790:5: ( ^( SELECT_STATEMENT ( subquery_factoring_clause )? subquery ( for_update_clause )* ( order_by_clause )* ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:790:10: ^( SELECT_STATEMENT ( subquery_factoring_clause )? subquery ( for_update_clause )* ( order_by_clause )* )
            {
            match(input,SELECT_STATEMENT,FOLLOW_SELECT_STATEMENT_in_select_statement6524); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:790:29: ( subquery_factoring_clause )?
            int alt208=2;
            int LA208_0 = input.LA(1);

            if ( (LA208_0==SQL92_RESERVED_WITH) ) {
                alt208=1;
            }
            switch (alt208) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:790:29: subquery_factoring_clause
                    {
                    pushFollow(FOLLOW_subquery_factoring_clause_in_select_statement6526);
                    subquery_factoring_clause();

                    state._fsp--;


                    }
                    break;

            }


            pushFollow(FOLLOW_subquery_in_select_statement6529);
            subquery();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:790:65: ( for_update_clause )*
            loop209:
            do {
                int alt209=2;
                int LA209_0 = input.LA(1);

                if ( (LA209_0==SQL92_RESERVED_FOR) ) {
                    alt209=1;
                }


                switch (alt209) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:790:65: for_update_clause
            	    {
            	    pushFollow(FOLLOW_for_update_clause_in_select_statement6531);
            	    for_update_clause();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop209;
                }
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:790:84: ( order_by_clause )*
            loop210:
            do {
                int alt210=2;
                int LA210_0 = input.LA(1);

                if ( (LA210_0==SQL92_RESERVED_ORDER) ) {
                    alt210=1;
                }


                switch (alt210) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:790:84: order_by_clause
            	    {
            	    pushFollow(FOLLOW_order_by_clause_in_select_statement6534);
            	    order_by_clause();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop210;
                }
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "select_statement"



    // $ANTLR start "subquery_factoring_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:794:1: subquery_factoring_clause : ^( SQL92_RESERVED_WITH ( factoring_element )+ ) ;
    public final void subquery_factoring_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:795:5: ( ^( SQL92_RESERVED_WITH ( factoring_element )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:795:10: ^( SQL92_RESERVED_WITH ( factoring_element )+ )
            {
            match(input,SQL92_RESERVED_WITH,FOLLOW_SQL92_RESERVED_WITH_in_subquery_factoring_clause6560); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:795:32: ( factoring_element )+
            int cnt211=0;
            loop211:
            do {
                int alt211=2;
                int LA211_0 = input.LA(1);

                if ( (LA211_0==FACTORING) ) {
                    alt211=1;
                }


                switch (alt211) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:795:32: factoring_element
            	    {
            	    pushFollow(FOLLOW_factoring_element_in_subquery_factoring_clause6562);
            	    factoring_element();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt211 >= 1 ) break loop211;
                        EarlyExitException eee =
                            new EarlyExitException(211, input);
                        throw eee;
                }
                cnt211++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "subquery_factoring_clause"



    // $ANTLR start "factoring_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:798:1: factoring_element : ^( FACTORING query_name subquery ) ;
    public final void factoring_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:799:5: ( ^( FACTORING query_name subquery ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:799:10: ^( FACTORING query_name subquery )
            {
            match(input,FACTORING,FOLLOW_FACTORING_in_factoring_element6585); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_query_name_in_factoring_element6587);
            query_name();

            state._fsp--;


            pushFollow(FOLLOW_subquery_in_factoring_element6589);
            subquery();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "factoring_element"



    // $ANTLR start "subquery"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:802:1: subquery : ^( SUBQUERY subquery_basic_elements ( subquery_operation_part )* ) ;
    public final void subquery() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:803:5: ( ^( SUBQUERY subquery_basic_elements ( subquery_operation_part )* ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:803:10: ^( SUBQUERY subquery_basic_elements ( subquery_operation_part )* )
            {
            match(input,SUBQUERY,FOLLOW_SUBQUERY_in_subquery6611); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_subquery_basic_elements_in_subquery6613);
            subquery_basic_elements();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:803:45: ( subquery_operation_part )*
            loop212:
            do {
                int alt212=2;
                int LA212_0 = input.LA(1);

                if ( (LA212_0==PLSQL_RESERVED_MINUS||LA212_0==SQL92_RESERVED_INTERSECT||LA212_0==SQL92_RESERVED_UNION) ) {
                    alt212=1;
                }


                switch (alt212) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:803:45: subquery_operation_part
            	    {
            	    pushFollow(FOLLOW_subquery_operation_part_in_subquery6615);
            	    subquery_operation_part();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop212;
                }
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "subquery"



    // $ANTLR start "subquery_operation_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:806:1: subquery_operation_part : ^( ( SQL92_RESERVED_UNION | SQL92_RESERVED_INTERSECT | PLSQL_RESERVED_MINUS ) ( SQL92_RESERVED_ALL )? subquery_basic_elements ) ;
    public final void subquery_operation_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:807:5: ( ^( ( SQL92_RESERVED_UNION | SQL92_RESERVED_INTERSECT | PLSQL_RESERVED_MINUS ) ( SQL92_RESERVED_ALL )? subquery_basic_elements ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:807:10: ^( ( SQL92_RESERVED_UNION | SQL92_RESERVED_INTERSECT | PLSQL_RESERVED_MINUS ) ( SQL92_RESERVED_ALL )? subquery_basic_elements )
            {
            if ( input.LA(1)==PLSQL_RESERVED_MINUS||input.LA(1)==SQL92_RESERVED_INTERSECT||input.LA(1)==SQL92_RESERVED_UNION ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:807:81: ( SQL92_RESERVED_ALL )?
            int alt213=2;
            int LA213_0 = input.LA(1);

            if ( (LA213_0==SQL92_RESERVED_ALL) ) {
                alt213=1;
            }
            switch (alt213) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:807:81: SQL92_RESERVED_ALL
                    {
                    match(input,SQL92_RESERVED_ALL,FOLLOW_SQL92_RESERVED_ALL_in_subquery_operation_part6646); 

                    }
                    break;

            }


            pushFollow(FOLLOW_subquery_basic_elements_in_subquery_operation_part6649);
            subquery_basic_elements();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "subquery_operation_part"



    // $ANTLR start "subquery_basic_elements"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:810:1: subquery_basic_elements : ( query_block | subquery );
    public final void subquery_basic_elements() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:811:5: ( query_block | subquery )
            int alt214=2;
            int LA214_0 = input.LA(1);

            if ( (LA214_0==SQL92_RESERVED_SELECT) ) {
                alt214=1;
            }
            else if ( (LA214_0==SUBQUERY) ) {
                alt214=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 214, 0, input);

                throw nvae;

            }
            switch (alt214) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:811:10: query_block
                    {
                    pushFollow(FOLLOW_query_block_in_subquery_basic_elements6670);
                    query_block();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:812:10: subquery
                    {
                    pushFollow(FOLLOW_subquery_in_subquery_basic_elements6681);
                    subquery();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "subquery_basic_elements"



    // $ANTLR start "query_block"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:815:1: query_block : ^( SQL92_RESERVED_SELECT from_clause ( SQL92_RESERVED_DISTINCT | SQL92_RESERVED_UNIQUE )? ( SQL92_RESERVED_ALL )? ( ASTERISK | ^( SELECT_LIST ( selected_element )+ ) ) ( into_clause )? ( where_clause )? ( hierarchical_query_clause )? ( group_by_clause )? ( having_clause )? ( model_clause )? ) ;
    public final void query_block() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:816:5: ( ^( SQL92_RESERVED_SELECT from_clause ( SQL92_RESERVED_DISTINCT | SQL92_RESERVED_UNIQUE )? ( SQL92_RESERVED_ALL )? ( ASTERISK | ^( SELECT_LIST ( selected_element )+ ) ) ( into_clause )? ( where_clause )? ( hierarchical_query_clause )? ( group_by_clause )? ( having_clause )? ( model_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:816:10: ^( SQL92_RESERVED_SELECT from_clause ( SQL92_RESERVED_DISTINCT | SQL92_RESERVED_UNIQUE )? ( SQL92_RESERVED_ALL )? ( ASTERISK | ^( SELECT_LIST ( selected_element )+ ) ) ( into_clause )? ( where_clause )? ( hierarchical_query_clause )? ( group_by_clause )? ( having_clause )? ( model_clause )? )
            {
            match(input,SQL92_RESERVED_SELECT,FOLLOW_SQL92_RESERVED_SELECT_in_query_block6702); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_from_clause_in_query_block6717);
            from_clause();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:818:13: ( SQL92_RESERVED_DISTINCT | SQL92_RESERVED_UNIQUE )?
            int alt215=2;
            int LA215_0 = input.LA(1);

            if ( (LA215_0==SQL92_RESERVED_DISTINCT||LA215_0==SQL92_RESERVED_UNIQUE) ) {
                alt215=1;
            }
            switch (alt215) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                    {
                    if ( input.LA(1)==SQL92_RESERVED_DISTINCT||input.LA(1)==SQL92_RESERVED_UNIQUE ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:818:62: ( SQL92_RESERVED_ALL )?
            int alt216=2;
            int LA216_0 = input.LA(1);

            if ( (LA216_0==SQL92_RESERVED_ALL) ) {
                alt216=1;
            }
            switch (alt216) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:818:62: SQL92_RESERVED_ALL
                    {
                    match(input,SQL92_RESERVED_ALL,FOLLOW_SQL92_RESERVED_ALL_in_query_block6739); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:819:13: ( ASTERISK | ^( SELECT_LIST ( selected_element )+ ) )
            int alt218=2;
            int LA218_0 = input.LA(1);

            if ( (LA218_0==ASTERISK) ) {
                alt218=1;
            }
            else if ( (LA218_0==SELECT_LIST) ) {
                alt218=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 218, 0, input);

                throw nvae;

            }
            switch (alt218) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:819:18: ASTERISK
                    {
                    match(input,ASTERISK,FOLLOW_ASTERISK_in_query_block6760); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:820:18: ^( SELECT_LIST ( selected_element )+ )
                    {
                    match(input,SELECT_LIST,FOLLOW_SELECT_LIST_in_query_block6780); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:820:32: ( selected_element )+
                    int cnt217=0;
                    loop217:
                    do {
                        int alt217=2;
                        int LA217_0 = input.LA(1);

                        if ( (LA217_0==SELECT_ITEM) ) {
                            alt217=1;
                        }


                        switch (alt217) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:820:32: selected_element
                    	    {
                    	    pushFollow(FOLLOW_selected_element_in_query_block6782);
                    	    selected_element();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt217 >= 1 ) break loop217;
                                EarlyExitException eee =
                                    new EarlyExitException(217, input);
                                throw eee;
                        }
                        cnt217++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:822:13: ( into_clause )?
            int alt219=2;
            int LA219_0 = input.LA(1);

            if ( (LA219_0==SQL92_RESERVED_INTO||LA219_0==BULK_VK) ) {
                alt219=1;
            }
            switch (alt219) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:822:13: into_clause
                    {
                    pushFollow(FOLLOW_into_clause_in_query_block6812);
                    into_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:822:26: ( where_clause )?
            int alt220=2;
            int LA220_0 = input.LA(1);

            if ( (LA220_0==SQL92_RESERVED_WHERE) ) {
                alt220=1;
            }
            switch (alt220) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:822:26: where_clause
                    {
                    pushFollow(FOLLOW_where_clause_in_query_block6815);
                    where_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:822:40: ( hierarchical_query_clause )?
            int alt221=2;
            int LA221_0 = input.LA(1);

            if ( (LA221_0==HIERARCHICAL) ) {
                alt221=1;
            }
            switch (alt221) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:822:40: hierarchical_query_clause
                    {
                    pushFollow(FOLLOW_hierarchical_query_clause_in_query_block6818);
                    hierarchical_query_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:823:13: ( group_by_clause )?
            int alt222=2;
            int LA222_0 = input.LA(1);

            if ( (LA222_0==SQL92_RESERVED_GROUP) ) {
                alt222=1;
            }
            switch (alt222) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:823:13: group_by_clause
                    {
                    pushFollow(FOLLOW_group_by_clause_in_query_block6834);
                    group_by_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:823:30: ( having_clause )?
            int alt223=2;
            int LA223_0 = input.LA(1);

            if ( (LA223_0==SQL92_RESERVED_HAVING) ) {
                alt223=1;
            }
            switch (alt223) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:823:30: having_clause
                    {
                    pushFollow(FOLLOW_having_clause_in_query_block6837);
                    having_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:823:45: ( model_clause )?
            int alt224=2;
            int LA224_0 = input.LA(1);

            if ( (LA224_0==PLSQL_NON_RESERVED_MODEL) ) {
                alt224=1;
            }
            switch (alt224) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:823:45: model_clause
                    {
                    pushFollow(FOLLOW_model_clause_in_query_block6840);
                    model_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "query_block"



    // $ANTLR start "selected_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:827:1: selected_element : ^( SELECT_ITEM expression ( alias )? ) ;
    public final void selected_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:828:5: ( ^( SELECT_ITEM expression ( alias )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:828:10: ^( SELECT_ITEM expression ( alias )? )
            {
            match(input,SELECT_ITEM,FOLLOW_SELECT_ITEM_in_selected_element6872); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_selected_element6874);
            expression();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:828:35: ( alias )?
            int alt225=2;
            int LA225_0 = input.LA(1);

            if ( (LA225_0==ALIAS) ) {
                alt225=1;
            }
            switch (alt225) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:828:35: alias
                    {
                    pushFollow(FOLLOW_alias_in_selected_element6876);
                    alias();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "selected_element"



    // $ANTLR start "from_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:831:1: from_clause : ^( SQL92_RESERVED_FROM ( table_ref )+ ) ;
    public final void from_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:832:5: ( ^( SQL92_RESERVED_FROM ( table_ref )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:832:10: ^( SQL92_RESERVED_FROM ( table_ref )+ )
            {
            match(input,SQL92_RESERVED_FROM,FOLLOW_SQL92_RESERVED_FROM_in_from_clause6899); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:832:32: ( table_ref )+
            int cnt226=0;
            loop226:
            do {
                int alt226=2;
                int LA226_0 = input.LA(1);

                if ( (LA226_0==TABLE_REF) ) {
                    alt226=1;
                }


                switch (alt226) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:832:32: table_ref
            	    {
            	    pushFollow(FOLLOW_table_ref_in_from_clause6901);
            	    table_ref();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt226 >= 1 ) break loop226;
                        EarlyExitException eee =
                            new EarlyExitException(226, input);
                        throw eee;
                }
                cnt226++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "from_clause"



    // $ANTLR start "table_ref"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:835:1: table_ref : ^( TABLE_REF table_ref_aux ( join_clause )* ) ;
    public final void table_ref() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:836:5: ( ^( TABLE_REF table_ref_aux ( join_clause )* ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:836:10: ^( TABLE_REF table_ref_aux ( join_clause )* )
            {
            match(input,TABLE_REF,FOLLOW_TABLE_REF_in_table_ref6924); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_table_ref_aux_in_table_ref6926);
            table_ref_aux();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:836:36: ( join_clause )*
            loop227:
            do {
                int alt227=2;
                int LA227_0 = input.LA(1);

                if ( (LA227_0==JOIN_DEF) ) {
                    alt227=1;
                }


                switch (alt227) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:836:36: join_clause
            	    {
            	    pushFollow(FOLLOW_join_clause_in_table_ref6928);
            	    join_clause();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop227;
                }
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "table_ref"



    // $ANTLR start "table_ref_aux"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:839:1: table_ref_aux : ^( TABLE_REF_ELEMENT ( alias )? dml_table_expression_clause ( ONLY_VK )? ( pivot_clause )? ( unpivot_clause )? ( flashback_query_clause )* ) ;
    public final void table_ref_aux() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:840:5: ( ^( TABLE_REF_ELEMENT ( alias )? dml_table_expression_clause ( ONLY_VK )? ( pivot_clause )? ( unpivot_clause )? ( flashback_query_clause )* ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:840:10: ^( TABLE_REF_ELEMENT ( alias )? dml_table_expression_clause ( ONLY_VK )? ( pivot_clause )? ( unpivot_clause )? ( flashback_query_clause )* )
            {
            match(input,TABLE_REF_ELEMENT,FOLLOW_TABLE_REF_ELEMENT_in_table_ref_aux6951); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:840:30: ( alias )?
            int alt228=2;
            int LA228_0 = input.LA(1);

            if ( (LA228_0==ALIAS) ) {
                alt228=1;
            }
            switch (alt228) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:840:30: alias
                    {
                    pushFollow(FOLLOW_alias_in_table_ref_aux6953);
                    alias();

                    state._fsp--;


                    }
                    break;

            }


            pushFollow(FOLLOW_dml_table_expression_clause_in_table_ref_aux6956);
            dml_table_expression_clause();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:840:65: ( ONLY_VK )?
            int alt229=2;
            int LA229_0 = input.LA(1);

            if ( (LA229_0==ONLY_VK) ) {
                alt229=1;
            }
            switch (alt229) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:840:65: ONLY_VK
                    {
                    match(input,ONLY_VK,FOLLOW_ONLY_VK_in_table_ref_aux6958); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:840:74: ( pivot_clause )?
            int alt230=2;
            int LA230_0 = input.LA(1);

            if ( (LA230_0==PIVOT_VK) ) {
                alt230=1;
            }
            switch (alt230) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:840:74: pivot_clause
                    {
                    pushFollow(FOLLOW_pivot_clause_in_table_ref_aux6961);
                    pivot_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:840:88: ( unpivot_clause )?
            int alt231=2;
            int LA231_0 = input.LA(1);

            if ( (LA231_0==UNPIVOT_VK) ) {
                alt231=1;
            }
            switch (alt231) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:840:88: unpivot_clause
                    {
                    pushFollow(FOLLOW_unpivot_clause_in_table_ref_aux6964);
                    unpivot_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:840:104: ( flashback_query_clause )*
            loop232:
            do {
                int alt232=2;
                int LA232_0 = input.LA(1);

                if ( (LA232_0==SQL92_RESERVED_AS||LA232_0==VERSIONS_VK) ) {
                    alt232=1;
                }


                switch (alt232) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:840:104: flashback_query_clause
            	    {
            	    pushFollow(FOLLOW_flashback_query_clause_in_table_ref_aux6967);
            	    flashback_query_clause();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop232;
                }
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "table_ref_aux"



    // $ANTLR start "join_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:843:1: join_clause : ^( JOIN_DEF ( CROSS_VK | NATURAL_VK )? ( INNER_VK | FULL_VK | LEFT_VK | RIGHT_VK )? table_ref_aux ( query_partition_clause )* ( join_on_part | join_using_part )? ) ;
    public final void join_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:844:5: ( ^( JOIN_DEF ( CROSS_VK | NATURAL_VK )? ( INNER_VK | FULL_VK | LEFT_VK | RIGHT_VK )? table_ref_aux ( query_partition_clause )* ( join_on_part | join_using_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:844:10: ^( JOIN_DEF ( CROSS_VK | NATURAL_VK )? ( INNER_VK | FULL_VK | LEFT_VK | RIGHT_VK )? table_ref_aux ( query_partition_clause )* ( join_on_part | join_using_part )? )
            {
            match(input,JOIN_DEF,FOLLOW_JOIN_DEF_in_join_clause6990); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:844:21: ( CROSS_VK | NATURAL_VK )?
            int alt233=2;
            int LA233_0 = input.LA(1);

            if ( (LA233_0==CROSS_VK||LA233_0==NATURAL_VK) ) {
                alt233=1;
            }
            switch (alt233) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                    {
                    if ( input.LA(1)==CROSS_VK||input.LA(1)==NATURAL_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:844:44: ( INNER_VK | FULL_VK | LEFT_VK | RIGHT_VK )?
            int alt234=2;
            int LA234_0 = input.LA(1);

            if ( (LA234_0==FULL_VK||LA234_0==INNER_VK||LA234_0==LEFT_VK||LA234_0==RIGHT_VK) ) {
                alt234=1;
            }
            switch (alt234) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                    {
                    if ( input.LA(1)==FULL_VK||input.LA(1)==INNER_VK||input.LA(1)==LEFT_VK||input.LA(1)==RIGHT_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            pushFollow(FOLLOW_table_ref_aux_in_join_clause7010);
            table_ref_aux();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:844:95: ( query_partition_clause )*
            loop235:
            do {
                int alt235=2;
                int LA235_0 = input.LA(1);

                if ( (LA235_0==PARTITION_VK) ) {
                    alt235=1;
                }


                switch (alt235) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:844:95: query_partition_clause
            	    {
            	    pushFollow(FOLLOW_query_partition_clause_in_join_clause7012);
            	    query_partition_clause();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop235;
                }
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:844:119: ( join_on_part | join_using_part )?
            int alt236=3;
            int LA236_0 = input.LA(1);

            if ( (LA236_0==SQL92_RESERVED_ON) ) {
                alt236=1;
            }
            else if ( (LA236_0==PLSQL_NON_RESERVED_USING) ) {
                alt236=2;
            }
            switch (alt236) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:844:120: join_on_part
                    {
                    pushFollow(FOLLOW_join_on_part_in_join_clause7016);
                    join_on_part();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:844:133: join_using_part
                    {
                    pushFollow(FOLLOW_join_using_part_in_join_clause7018);
                    join_using_part();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "join_clause"



    // $ANTLR start "join_on_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:847:1: join_on_part : ^( SQL92_RESERVED_ON expression ) ;
    public final void join_on_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:848:5: ( ^( SQL92_RESERVED_ON expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:848:10: ^( SQL92_RESERVED_ON expression )
            {
            match(input,SQL92_RESERVED_ON,FOLLOW_SQL92_RESERVED_ON_in_join_on_part7043); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_join_on_part7045);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "join_on_part"



    // $ANTLR start "join_using_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:851:1: join_using_part : ^( PLSQL_NON_RESERVED_USING ( column_name )+ ) ;
    public final void join_using_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:852:5: ( ^( PLSQL_NON_RESERVED_USING ( column_name )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:852:10: ^( PLSQL_NON_RESERVED_USING ( column_name )+ )
            {
            match(input,PLSQL_NON_RESERVED_USING,FOLLOW_PLSQL_NON_RESERVED_USING_in_join_using_part7068); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:852:37: ( column_name )+
            int cnt237=0;
            loop237:
            do {
                int alt237=2;
                int LA237_0 = input.LA(1);

                if ( (LA237_0==COLUMN_NAME) ) {
                    alt237=1;
                }


                switch (alt237) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:852:37: column_name
            	    {
            	    pushFollow(FOLLOW_column_name_in_join_using_part7070);
            	    column_name();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt237 >= 1 ) break loop237;
                        EarlyExitException eee =
                            new EarlyExitException(237, input);
                        throw eee;
                }
                cnt237++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "join_using_part"



    // $ANTLR start "query_partition_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:855:1: query_partition_clause : ^( PARTITION_VK ( expression_list | ( expression )+ ) ) ;
    public final void query_partition_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:856:5: ( ^( PARTITION_VK ( expression_list | ( expression )+ ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:856:10: ^( PARTITION_VK ( expression_list | ( expression )+ ) )
            {
            match(input,PARTITION_VK,FOLLOW_PARTITION_VK_in_query_partition_clause7093); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:856:25: ( expression_list | ( expression )+ )
            int alt239=2;
            int LA239_0 = input.LA(1);

            if ( (LA239_0==EXPR_LIST) ) {
                alt239=1;
            }
            else if ( (LA239_0==EXPR||LA239_0==LOGIC_EXPR) ) {
                alt239=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 239, 0, input);

                throw nvae;

            }
            switch (alt239) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:856:26: expression_list
                    {
                    pushFollow(FOLLOW_expression_list_in_query_partition_clause7096);
                    expression_list();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:856:42: ( expression )+
                    {
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:856:42: ( expression )+
                    int cnt238=0;
                    loop238:
                    do {
                        int alt238=2;
                        int LA238_0 = input.LA(1);

                        if ( (LA238_0==EXPR||LA238_0==LOGIC_EXPR) ) {
                            alt238=1;
                        }


                        switch (alt238) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:856:42: expression
                    	    {
                    	    pushFollow(FOLLOW_expression_in_query_partition_clause7098);
                    	    expression();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt238 >= 1 ) break loop238;
                                EarlyExitException eee =
                                    new EarlyExitException(238, input);
                                throw eee;
                        }
                        cnt238++;
                    } while (true);


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "query_partition_clause"



    // $ANTLR start "flashback_query_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:859:1: flashback_query_clause : ^( ( VERSIONS_VK | SQL92_RESERVED_AS ) ( SCN_VK | TIMESTAMP_VK )? expression ) ;
    public final void flashback_query_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:860:5: ( ^( ( VERSIONS_VK | SQL92_RESERVED_AS ) ( SCN_VK | TIMESTAMP_VK )? expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:860:10: ^( ( VERSIONS_VK | SQL92_RESERVED_AS ) ( SCN_VK | TIMESTAMP_VK )? expression )
            {
            if ( input.LA(1)==SQL92_RESERVED_AS||input.LA(1)==VERSIONS_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:860:44: ( SCN_VK | TIMESTAMP_VK )?
            int alt240=2;
            int LA240_0 = input.LA(1);

            if ( (LA240_0==SCN_VK||LA240_0==TIMESTAMP_VK) ) {
                alt240=1;
            }
            switch (alt240) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                    {
                    if ( input.LA(1)==SCN_VK||input.LA(1)==TIMESTAMP_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            pushFollow(FOLLOW_expression_in_flashback_query_clause7135);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "flashback_query_clause"



    // $ANTLR start "pivot_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:863:1: pivot_clause : ^( PIVOT_VK ( XML_VK )? ( pivot_element )+ pivot_for_clause pivot_in_clause ) ;
    public final void pivot_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:864:5: ( ^( PIVOT_VK ( XML_VK )? ( pivot_element )+ pivot_for_clause pivot_in_clause ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:864:10: ^( PIVOT_VK ( XML_VK )? ( pivot_element )+ pivot_for_clause pivot_in_clause )
            {
            match(input,PIVOT_VK,FOLLOW_PIVOT_VK_in_pivot_clause7158); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:864:21: ( XML_VK )?
            int alt241=2;
            int LA241_0 = input.LA(1);

            if ( (LA241_0==XML_VK) ) {
                alt241=1;
            }
            switch (alt241) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:864:21: XML_VK
                    {
                    match(input,XML_VK,FOLLOW_XML_VK_in_pivot_clause7160); 

                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:864:29: ( pivot_element )+
            int cnt242=0;
            loop242:
            do {
                int alt242=2;
                int LA242_0 = input.LA(1);

                if ( (LA242_0==PIVOT_ELEMENT) ) {
                    alt242=1;
                }


                switch (alt242) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:864:29: pivot_element
            	    {
            	    pushFollow(FOLLOW_pivot_element_in_pivot_clause7163);
            	    pivot_element();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt242 >= 1 ) break loop242;
                        EarlyExitException eee =
                            new EarlyExitException(242, input);
                        throw eee;
                }
                cnt242++;
            } while (true);


            pushFollow(FOLLOW_pivot_for_clause_in_pivot_clause7166);
            pivot_for_clause();

            state._fsp--;


            pushFollow(FOLLOW_pivot_in_clause_in_pivot_clause7168);
            pivot_in_clause();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "pivot_clause"



    // $ANTLR start "pivot_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:867:1: pivot_element : ^( PIVOT_ELEMENT ( alias )? expression ) ;
    public final void pivot_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:868:5: ( ^( PIVOT_ELEMENT ( alias )? expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:868:10: ^( PIVOT_ELEMENT ( alias )? expression )
            {
            match(input,PIVOT_ELEMENT,FOLLOW_PIVOT_ELEMENT_in_pivot_element7190); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:868:26: ( alias )?
            int alt243=2;
            int LA243_0 = input.LA(1);

            if ( (LA243_0==ALIAS) ) {
                alt243=1;
            }
            switch (alt243) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:868:26: alias
                    {
                    pushFollow(FOLLOW_alias_in_pivot_element7192);
                    alias();

                    state._fsp--;


                    }
                    break;

            }


            pushFollow(FOLLOW_expression_in_pivot_element7195);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "pivot_element"



    // $ANTLR start "pivot_for_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:871:1: pivot_for_clause : ^( SQL92_RESERVED_FOR ( column_name )+ ) ;
    public final void pivot_for_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:872:5: ( ^( SQL92_RESERVED_FOR ( column_name )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:872:10: ^( SQL92_RESERVED_FOR ( column_name )+ )
            {
            match(input,SQL92_RESERVED_FOR,FOLLOW_SQL92_RESERVED_FOR_in_pivot_for_clause7217); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:872:31: ( column_name )+
            int cnt244=0;
            loop244:
            do {
                int alt244=2;
                int LA244_0 = input.LA(1);

                if ( (LA244_0==COLUMN_NAME) ) {
                    alt244=1;
                }


                switch (alt244) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:872:31: column_name
            	    {
            	    pushFollow(FOLLOW_column_name_in_pivot_for_clause7219);
            	    column_name();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt244 >= 1 ) break loop244;
                        EarlyExitException eee =
                            new EarlyExitException(244, input);
                        throw eee;
                }
                cnt244++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "pivot_for_clause"



    // $ANTLR start "pivot_in_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:875:1: pivot_in_clause : ^( SQL92_RESERVED_IN ( subquery | ^( ANY_MODE ( SQL92_RESERVED_ANY )+ ) | ^( ELEMENTS_MODE ( pivot_in_clause_element )+ ) ) ) ;
    public final void pivot_in_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:876:5: ( ^( SQL92_RESERVED_IN ( subquery | ^( ANY_MODE ( SQL92_RESERVED_ANY )+ ) | ^( ELEMENTS_MODE ( pivot_in_clause_element )+ ) ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:876:10: ^( SQL92_RESERVED_IN ( subquery | ^( ANY_MODE ( SQL92_RESERVED_ANY )+ ) | ^( ELEMENTS_MODE ( pivot_in_clause_element )+ ) ) )
            {
            match(input,SQL92_RESERVED_IN,FOLLOW_SQL92_RESERVED_IN_in_pivot_in_clause7242); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:877:9: ( subquery | ^( ANY_MODE ( SQL92_RESERVED_ANY )+ ) | ^( ELEMENTS_MODE ( pivot_in_clause_element )+ ) )
            int alt247=3;
            switch ( input.LA(1) ) {
            case SUBQUERY:
                {
                alt247=1;
                }
                break;
            case ANY_MODE:
                {
                alt247=2;
                }
                break;
            case ELEMENTS_MODE:
                {
                alt247=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 247, 0, input);

                throw nvae;

            }

            switch (alt247) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:877:14: subquery
                    {
                    pushFollow(FOLLOW_subquery_in_pivot_in_clause7258);
                    subquery();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:878:14: ^( ANY_MODE ( SQL92_RESERVED_ANY )+ )
                    {
                    match(input,ANY_MODE,FOLLOW_ANY_MODE_in_pivot_in_clause7274); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:878:25: ( SQL92_RESERVED_ANY )+
                    int cnt245=0;
                    loop245:
                    do {
                        int alt245=2;
                        int LA245_0 = input.LA(1);

                        if ( (LA245_0==SQL92_RESERVED_ANY) ) {
                            alt245=1;
                        }


                        switch (alt245) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:878:25: SQL92_RESERVED_ANY
                    	    {
                    	    match(input,SQL92_RESERVED_ANY,FOLLOW_SQL92_RESERVED_ANY_in_pivot_in_clause7276); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt245 >= 1 ) break loop245;
                                EarlyExitException eee =
                                    new EarlyExitException(245, input);
                                throw eee;
                        }
                        cnt245++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:879:14: ^( ELEMENTS_MODE ( pivot_in_clause_element )+ )
                    {
                    match(input,ELEMENTS_MODE,FOLLOW_ELEMENTS_MODE_in_pivot_in_clause7294); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:879:30: ( pivot_in_clause_element )+
                    int cnt246=0;
                    loop246:
                    do {
                        int alt246=2;
                        int LA246_0 = input.LA(1);

                        if ( (LA246_0==PIVOT_IN_ELEMENT) ) {
                            alt246=1;
                        }


                        switch (alt246) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:879:30: pivot_in_clause_element
                    	    {
                    	    pushFollow(FOLLOW_pivot_in_clause_element_in_pivot_in_clause7296);
                    	    pivot_in_clause_element();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt246 >= 1 ) break loop246;
                                EarlyExitException eee =
                                    new EarlyExitException(246, input);
                                throw eee;
                        }
                        cnt246++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "pivot_in_clause"



    // $ANTLR start "pivot_in_clause_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:884:1: pivot_in_clause_element : ^( PIVOT_IN_ELEMENT ( alias )? ( expression | expression_list ) ) ;
    public final void pivot_in_clause_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:885:5: ( ^( PIVOT_IN_ELEMENT ( alias )? ( expression | expression_list ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:885:10: ^( PIVOT_IN_ELEMENT ( alias )? ( expression | expression_list ) )
            {
            match(input,PIVOT_IN_ELEMENT,FOLLOW_PIVOT_IN_ELEMENT_in_pivot_in_clause_element7339); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:885:29: ( alias )?
            int alt248=2;
            int LA248_0 = input.LA(1);

            if ( (LA248_0==ALIAS) ) {
                alt248=1;
            }
            switch (alt248) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:885:29: alias
                    {
                    pushFollow(FOLLOW_alias_in_pivot_in_clause_element7341);
                    alias();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:885:36: ( expression | expression_list )
            int alt249=2;
            int LA249_0 = input.LA(1);

            if ( (LA249_0==EXPR||LA249_0==LOGIC_EXPR) ) {
                alt249=1;
            }
            else if ( (LA249_0==EXPR_LIST) ) {
                alt249=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 249, 0, input);

                throw nvae;

            }
            switch (alt249) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:885:37: expression
                    {
                    pushFollow(FOLLOW_expression_in_pivot_in_clause_element7345);
                    expression();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:885:48: expression_list
                    {
                    pushFollow(FOLLOW_expression_list_in_pivot_in_clause_element7347);
                    expression_list();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "pivot_in_clause_element"



    // $ANTLR start "unpivot_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:888:1: unpivot_clause : ^( UNPIVOT_VK ( ( INCLUDE_VK | EXCLUDE_VK ) ( NULLS_VK )? )? ( column_name )+ pivot_for_clause unpivot_in_clause ) ;
    public final void unpivot_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:889:5: ( ^( UNPIVOT_VK ( ( INCLUDE_VK | EXCLUDE_VK ) ( NULLS_VK )? )? ( column_name )+ pivot_for_clause unpivot_in_clause ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:889:10: ^( UNPIVOT_VK ( ( INCLUDE_VK | EXCLUDE_VK ) ( NULLS_VK )? )? ( column_name )+ pivot_for_clause unpivot_in_clause )
            {
            match(input,UNPIVOT_VK,FOLLOW_UNPIVOT_VK_in_unpivot_clause7370); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:889:23: ( ( INCLUDE_VK | EXCLUDE_VK ) ( NULLS_VK )? )?
            int alt251=2;
            int LA251_0 = input.LA(1);

            if ( (LA251_0==EXCLUDE_VK||LA251_0==INCLUDE_VK) ) {
                alt251=1;
            }
            switch (alt251) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:889:24: ( INCLUDE_VK | EXCLUDE_VK ) ( NULLS_VK )?
                    {
                    if ( input.LA(1)==EXCLUDE_VK||input.LA(1)==INCLUDE_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:889:48: ( NULLS_VK )?
                    int alt250=2;
                    int LA250_0 = input.LA(1);

                    if ( (LA250_0==NULLS_VK) ) {
                        alt250=1;
                    }
                    switch (alt250) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:889:48: NULLS_VK
                            {
                            match(input,NULLS_VK,FOLLOW_NULLS_VK_in_unpivot_clause7379); 

                            }
                            break;

                    }


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:889:60: ( column_name )+
            int cnt252=0;
            loop252:
            do {
                int alt252=2;
                int LA252_0 = input.LA(1);

                if ( (LA252_0==COLUMN_NAME) ) {
                    alt252=1;
                }


                switch (alt252) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:889:60: column_name
            	    {
            	    pushFollow(FOLLOW_column_name_in_unpivot_clause7384);
            	    column_name();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt252 >= 1 ) break loop252;
                        EarlyExitException eee =
                            new EarlyExitException(252, input);
                        throw eee;
                }
                cnt252++;
            } while (true);


            pushFollow(FOLLOW_pivot_for_clause_in_unpivot_clause7387);
            pivot_for_clause();

            state._fsp--;


            pushFollow(FOLLOW_unpivot_in_clause_in_unpivot_clause7389);
            unpivot_in_clause();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "unpivot_clause"



    // $ANTLR start "unpivot_in_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:892:1: unpivot_in_clause : ^( SQL92_RESERVED_IN ( unpivot_in_element )+ ) ;
    public final void unpivot_in_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:893:5: ( ^( SQL92_RESERVED_IN ( unpivot_in_element )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:893:10: ^( SQL92_RESERVED_IN ( unpivot_in_element )+ )
            {
            match(input,SQL92_RESERVED_IN,FOLLOW_SQL92_RESERVED_IN_in_unpivot_in_clause7411); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:893:30: ( unpivot_in_element )+
            int cnt253=0;
            loop253:
            do {
                int alt253=2;
                int LA253_0 = input.LA(1);

                if ( (LA253_0==UNPIVOT_IN_ELEMENT) ) {
                    alt253=1;
                }


                switch (alt253) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:893:30: unpivot_in_element
            	    {
            	    pushFollow(FOLLOW_unpivot_in_element_in_unpivot_in_clause7413);
            	    unpivot_in_element();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt253 >= 1 ) break loop253;
                        EarlyExitException eee =
                            new EarlyExitException(253, input);
                        throw eee;
                }
                cnt253++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "unpivot_in_clause"



    // $ANTLR start "unpivot_in_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:896:1: unpivot_in_element : ^( UNPIVOT_IN_ELEMENT ( column_name )+ ^( PIVOT_ALIAS ( expression | expression_list ) ) ) ;
    public final void unpivot_in_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:897:5: ( ^( UNPIVOT_IN_ELEMENT ( column_name )+ ^( PIVOT_ALIAS ( expression | expression_list ) ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:897:10: ^( UNPIVOT_IN_ELEMENT ( column_name )+ ^( PIVOT_ALIAS ( expression | expression_list ) ) )
            {
            match(input,UNPIVOT_IN_ELEMENT,FOLLOW_UNPIVOT_IN_ELEMENT_in_unpivot_in_element7436); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:897:31: ( column_name )+
            int cnt254=0;
            loop254:
            do {
                int alt254=2;
                int LA254_0 = input.LA(1);

                if ( (LA254_0==COLUMN_NAME) ) {
                    alt254=1;
                }


                switch (alt254) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:897:31: column_name
            	    {
            	    pushFollow(FOLLOW_column_name_in_unpivot_in_element7438);
            	    column_name();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt254 >= 1 ) break loop254;
                        EarlyExitException eee =
                            new EarlyExitException(254, input);
                        throw eee;
                }
                cnt254++;
            } while (true);


            match(input,PIVOT_ALIAS,FOLLOW_PIVOT_ALIAS_in_unpivot_in_element7442); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:897:58: ( expression | expression_list )
            int alt255=2;
            int LA255_0 = input.LA(1);

            if ( (LA255_0==EXPR||LA255_0==LOGIC_EXPR) ) {
                alt255=1;
            }
            else if ( (LA255_0==EXPR_LIST) ) {
                alt255=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 255, 0, input);

                throw nvae;

            }
            switch (alt255) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:897:59: expression
                    {
                    pushFollow(FOLLOW_expression_in_unpivot_in_element7445);
                    expression();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:897:70: expression_list
                    {
                    pushFollow(FOLLOW_expression_list_in_unpivot_in_element7447);
                    expression_list();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "unpivot_in_element"



    // $ANTLR start "hierarchical_query_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:900:1: hierarchical_query_clause : ^( HIERARCHICAL ( start_part )? ^( SQL92_RESERVED_CONNECT ( NOCYCLE_VK )? expression ) ) ;
    public final void hierarchical_query_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:901:5: ( ^( HIERARCHICAL ( start_part )? ^( SQL92_RESERVED_CONNECT ( NOCYCLE_VK )? expression ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:901:10: ^( HIERARCHICAL ( start_part )? ^( SQL92_RESERVED_CONNECT ( NOCYCLE_VK )? expression ) )
            {
            match(input,HIERARCHICAL,FOLLOW_HIERARCHICAL_in_hierarchical_query_clause7471); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:901:25: ( start_part )?
            int alt256=2;
            int LA256_0 = input.LA(1);

            if ( (LA256_0==PLSQL_RESERVED_START) ) {
                alt256=1;
            }
            switch (alt256) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:901:25: start_part
                    {
                    pushFollow(FOLLOW_start_part_in_hierarchical_query_clause7473);
                    start_part();

                    state._fsp--;


                    }
                    break;

            }


            match(input,SQL92_RESERVED_CONNECT,FOLLOW_SQL92_RESERVED_CONNECT_in_hierarchical_query_clause7477); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:901:62: ( NOCYCLE_VK )?
            int alt257=2;
            int LA257_0 = input.LA(1);

            if ( (LA257_0==NOCYCLE_VK) ) {
                alt257=1;
            }
            switch (alt257) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:901:62: NOCYCLE_VK
                    {
                    match(input,NOCYCLE_VK,FOLLOW_NOCYCLE_VK_in_hierarchical_query_clause7479); 

                    }
                    break;

            }


            pushFollow(FOLLOW_expression_in_hierarchical_query_clause7482);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "hierarchical_query_clause"



    // $ANTLR start "start_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:904:1: start_part : ^( PLSQL_RESERVED_START expression ) ;
    public final void start_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:905:5: ( ^( PLSQL_RESERVED_START expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:905:10: ^( PLSQL_RESERVED_START expression )
            {
            match(input,PLSQL_RESERVED_START,FOLLOW_PLSQL_RESERVED_START_in_start_part7505); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_start_part7507);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "start_part"



    // $ANTLR start "group_by_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:908:1: group_by_clause : ^( SQL92_RESERVED_GROUP ( group_by_element )+ ) ;
    public final void group_by_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:909:5: ( ^( SQL92_RESERVED_GROUP ( group_by_element )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:909:10: ^( SQL92_RESERVED_GROUP ( group_by_element )+ )
            {
            match(input,SQL92_RESERVED_GROUP,FOLLOW_SQL92_RESERVED_GROUP_in_group_by_clause7529); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:909:33: ( group_by_element )+
            int cnt258=0;
            loop258:
            do {
                int alt258=2;
                int LA258_0 = input.LA(1);

                if ( (LA258_0==GROUP_BY_ELEMENT) ) {
                    alt258=1;
                }


                switch (alt258) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:909:33: group_by_element
            	    {
            	    pushFollow(FOLLOW_group_by_element_in_group_by_clause7531);
            	    group_by_element();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt258 >= 1 ) break loop258;
                        EarlyExitException eee =
                            new EarlyExitException(258, input);
                        throw eee;
                }
                cnt258++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "group_by_clause"



    // $ANTLR start "group_by_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:912:1: group_by_element : ^( GROUP_BY_ELEMENT group_by_elements ) ;
    public final void group_by_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:913:5: ( ^( GROUP_BY_ELEMENT group_by_elements ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:913:10: ^( GROUP_BY_ELEMENT group_by_elements )
            {
            match(input,GROUP_BY_ELEMENT,FOLLOW_GROUP_BY_ELEMENT_in_group_by_element7554); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_group_by_elements_in_group_by_element7556);
            group_by_elements();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "group_by_element"



    // $ANTLR start "group_by_elements"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:916:1: group_by_elements : ( ^( GROUPING_VK ( groupin_set )+ ) | grouping_element );
    public final void group_by_elements() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:917:5: ( ^( GROUPING_VK ( groupin_set )+ ) | grouping_element )
            int alt260=2;
            int LA260_0 = input.LA(1);

            if ( (LA260_0==GROUPING_VK) ) {
                alt260=1;
            }
            else if ( (LA260_0==CUBE_VK||(LA260_0 >= EXPR && LA260_0 <= EXPR_LIST)||LA260_0==LOGIC_EXPR||LA260_0==ROLLUP_VK) ) {
                alt260=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 260, 0, input);

                throw nvae;

            }
            switch (alt260) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:917:10: ^( GROUPING_VK ( groupin_set )+ )
                    {
                    match(input,GROUPING_VK,FOLLOW_GROUPING_VK_in_group_by_elements7578); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:917:24: ( groupin_set )+
                    int cnt259=0;
                    loop259:
                    do {
                        int alt259=2;
                        int LA259_0 = input.LA(1);

                        if ( (LA259_0==GROUPIN_SET) ) {
                            alt259=1;
                        }


                        switch (alt259) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:917:24: groupin_set
                    	    {
                    	    pushFollow(FOLLOW_groupin_set_in_group_by_elements7580);
                    	    groupin_set();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt259 >= 1 ) break loop259;
                                EarlyExitException eee =
                                    new EarlyExitException(259, input);
                                throw eee;
                        }
                        cnt259++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:918:10: grouping_element
                    {
                    pushFollow(FOLLOW_grouping_element_in_group_by_elements7593);
                    grouping_element();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "group_by_elements"



    // $ANTLR start "groupin_set"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:921:1: groupin_set : ^( GROUPIN_SET grouping_element ) ;
    public final void groupin_set() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:922:5: ( ^( GROUPIN_SET grouping_element ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:922:10: ^( GROUPIN_SET grouping_element )
            {
            match(input,GROUPIN_SET,FOLLOW_GROUPIN_SET_in_groupin_set7615); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_grouping_element_in_groupin_set7617);
            grouping_element();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "groupin_set"



    // $ANTLR start "grouping_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:925:1: grouping_element : ( ^( ( ROLLUP_VK | CUBE_VK ) ( grouping_element )+ ) | expression_list | expression );
    public final void grouping_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:926:5: ( ^( ( ROLLUP_VK | CUBE_VK ) ( grouping_element )+ ) | expression_list | expression )
            int alt262=3;
            switch ( input.LA(1) ) {
            case CUBE_VK:
            case ROLLUP_VK:
                {
                alt262=1;
                }
                break;
            case EXPR_LIST:
                {
                alt262=2;
                }
                break;
            case EXPR:
            case LOGIC_EXPR:
                {
                alt262=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 262, 0, input);

                throw nvae;

            }

            switch (alt262) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:926:10: ^( ( ROLLUP_VK | CUBE_VK ) ( grouping_element )+ )
                    {
                    if ( input.LA(1)==CUBE_VK||input.LA(1)==ROLLUP_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:926:32: ( grouping_element )+
                    int cnt261=0;
                    loop261:
                    do {
                        int alt261=2;
                        int LA261_0 = input.LA(1);

                        if ( (LA261_0==CUBE_VK||(LA261_0 >= EXPR && LA261_0 <= EXPR_LIST)||LA261_0==LOGIC_EXPR||LA261_0==ROLLUP_VK) ) {
                            alt261=1;
                        }


                        switch (alt261) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:926:32: grouping_element
                    	    {
                    	    pushFollow(FOLLOW_grouping_element_in_grouping_element7645);
                    	    grouping_element();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt261 >= 1 ) break loop261;
                                EarlyExitException eee =
                                    new EarlyExitException(261, input);
                                throw eee;
                        }
                        cnt261++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:927:10: expression_list
                    {
                    pushFollow(FOLLOW_expression_list_in_grouping_element7658);
                    expression_list();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:928:10: expression
                    {
                    pushFollow(FOLLOW_expression_in_grouping_element7669);
                    expression();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "grouping_element"



    // $ANTLR start "having_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:931:1: having_clause : ^( SQL92_RESERVED_HAVING expression ) ;
    public final void having_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:932:5: ( ^( SQL92_RESERVED_HAVING expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:932:10: ^( SQL92_RESERVED_HAVING expression )
            {
            match(input,SQL92_RESERVED_HAVING,FOLLOW_SQL92_RESERVED_HAVING_in_having_clause7691); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_having_clause7693);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "having_clause"



    // $ANTLR start "model_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:935:1: model_clause : ^( PLSQL_NON_RESERVED_MODEL main_model ( cell_reference_options )* ( return_rows_clause )? ( reference_model )* ) ;
    public final void model_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:936:5: ( ^( PLSQL_NON_RESERVED_MODEL main_model ( cell_reference_options )* ( return_rows_clause )? ( reference_model )* ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:936:10: ^( PLSQL_NON_RESERVED_MODEL main_model ( cell_reference_options )* ( return_rows_clause )? ( reference_model )* )
            {
            match(input,PLSQL_NON_RESERVED_MODEL,FOLLOW_PLSQL_NON_RESERVED_MODEL_in_model_clause7715); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_main_model_in_model_clause7717);
            main_model();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:936:48: ( cell_reference_options )*
            loop263:
            do {
                int alt263=2;
                int LA263_0 = input.LA(1);

                if ( (LA263_0==SQL92_RESERVED_UNIQUE||LA263_0==IGNORE_VK||LA263_0==KEEP_VK) ) {
                    alt263=1;
                }


                switch (alt263) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:936:48: cell_reference_options
            	    {
            	    pushFollow(FOLLOW_cell_reference_options_in_model_clause7719);
            	    cell_reference_options();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop263;
                }
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:936:72: ( return_rows_clause )?
            int alt264=2;
            int LA264_0 = input.LA(1);

            if ( (LA264_0==RETURN_VK) ) {
                alt264=1;
            }
            switch (alt264) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:936:72: return_rows_clause
                    {
                    pushFollow(FOLLOW_return_rows_clause_in_model_clause7722);
                    return_rows_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:936:92: ( reference_model )*
            loop265:
            do {
                int alt265=2;
                int LA265_0 = input.LA(1);

                if ( (LA265_0==REFERENCE_VK) ) {
                    alt265=1;
                }


                switch (alt265) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:936:92: reference_model
            	    {
            	    pushFollow(FOLLOW_reference_model_in_model_clause7725);
            	    reference_model();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop265;
                }
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "model_clause"



    // $ANTLR start "cell_reference_options"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:939:1: cell_reference_options : ( ^( ( IGNORE_VK | KEEP_VK ) NAV_VK ) | ^( SQL92_RESERVED_UNIQUE ( DIMENSION_VK | SINGLE_VK ) ) );
    public final void cell_reference_options() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:940:5: ( ^( ( IGNORE_VK | KEEP_VK ) NAV_VK ) | ^( SQL92_RESERVED_UNIQUE ( DIMENSION_VK | SINGLE_VK ) ) )
            int alt266=2;
            int LA266_0 = input.LA(1);

            if ( (LA266_0==IGNORE_VK||LA266_0==KEEP_VK) ) {
                alt266=1;
            }
            else if ( (LA266_0==SQL92_RESERVED_UNIQUE) ) {
                alt266=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 266, 0, input);

                throw nvae;

            }
            switch (alt266) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:940:10: ^( ( IGNORE_VK | KEEP_VK ) NAV_VK )
                    {
                    if ( input.LA(1)==IGNORE_VK||input.LA(1)==KEEP_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input, Token.DOWN, null); 
                    match(input,NAV_VK,FOLLOW_NAV_VK_in_cell_reference_options7754); 

                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:941:10: ^( SQL92_RESERVED_UNIQUE ( DIMENSION_VK | SINGLE_VK ) )
                    {
                    match(input,SQL92_RESERVED_UNIQUE,FOLLOW_SQL92_RESERVED_UNIQUE_in_cell_reference_options7767); 

                    match(input, Token.DOWN, null); 
                    if ( input.LA(1)==DIMENSION_VK||input.LA(1)==SINGLE_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "cell_reference_options"



    // $ANTLR start "return_rows_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:944:1: return_rows_clause : ^( RETURN_VK ( UPDATED_VK | SQL92_RESERVED_ALL ) ) ;
    public final void return_rows_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:945:5: ( ^( RETURN_VK ( UPDATED_VK | SQL92_RESERVED_ALL ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:945:10: ^( RETURN_VK ( UPDATED_VK | SQL92_RESERVED_ALL ) )
            {
            match(input,RETURN_VK,FOLLOW_RETURN_VK_in_return_rows_clause7795); 

            match(input, Token.DOWN, null); 
            if ( input.LA(1)==SQL92_RESERVED_ALL||input.LA(1)==UPDATED_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "return_rows_clause"



    // $ANTLR start "reference_model"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:948:1: reference_model : ^( REFERENCE_VK reference_model_name subquery model_column_clauses ( cell_reference_options )* ) ;
    public final void reference_model() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:949:5: ( ^( REFERENCE_VK reference_model_name subquery model_column_clauses ( cell_reference_options )* ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:949:10: ^( REFERENCE_VK reference_model_name subquery model_column_clauses ( cell_reference_options )* )
            {
            match(input,REFERENCE_VK,FOLLOW_REFERENCE_VK_in_reference_model7823); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_reference_model_name_in_reference_model7825);
            reference_model_name();

            state._fsp--;


            pushFollow(FOLLOW_subquery_in_reference_model7827);
            subquery();

            state._fsp--;


            pushFollow(FOLLOW_model_column_clauses_in_reference_model7829);
            model_column_clauses();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:949:76: ( cell_reference_options )*
            loop267:
            do {
                int alt267=2;
                int LA267_0 = input.LA(1);

                if ( (LA267_0==SQL92_RESERVED_UNIQUE||LA267_0==IGNORE_VK||LA267_0==KEEP_VK) ) {
                    alt267=1;
                }


                switch (alt267) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:949:76: cell_reference_options
            	    {
            	    pushFollow(FOLLOW_cell_reference_options_in_reference_model7831);
            	    cell_reference_options();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop267;
                }
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "reference_model"



    // $ANTLR start "main_model"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:952:1: main_model : ^( MAIN_MODEL ( main_model_name )? model_column_clauses model_rules_clause ( cell_reference_options )* ) ;
    public final void main_model() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:953:5: ( ^( MAIN_MODEL ( main_model_name )? model_column_clauses model_rules_clause ( cell_reference_options )* ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:953:10: ^( MAIN_MODEL ( main_model_name )? model_column_clauses model_rules_clause ( cell_reference_options )* )
            {
            match(input,MAIN_MODEL,FOLLOW_MAIN_MODEL_in_main_model7854); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:953:23: ( main_model_name )?
            int alt268=2;
            int LA268_0 = input.LA(1);

            if ( (LA268_0==MAIN_MODEL_NAME) ) {
                alt268=1;
            }
            switch (alt268) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:953:23: main_model_name
                    {
                    pushFollow(FOLLOW_main_model_name_in_main_model7856);
                    main_model_name();

                    state._fsp--;


                    }
                    break;

            }


            pushFollow(FOLLOW_model_column_clauses_in_main_model7859);
            model_column_clauses();

            state._fsp--;


            pushFollow(FOLLOW_model_rules_clause_in_main_model7861);
            model_rules_clause();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:953:80: ( cell_reference_options )*
            loop269:
            do {
                int alt269=2;
                int LA269_0 = input.LA(1);

                if ( (LA269_0==SQL92_RESERVED_UNIQUE||LA269_0==IGNORE_VK||LA269_0==KEEP_VK) ) {
                    alt269=1;
                }


                switch (alt269) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:953:80: cell_reference_options
            	    {
            	    pushFollow(FOLLOW_cell_reference_options_in_main_model7863);
            	    cell_reference_options();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop269;
                }
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "main_model"



    // $ANTLR start "model_column_clauses"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:956:1: model_column_clauses : ^( MODEL_COLUMN ^( DIMENSION_VK model_column_list ) ^( MEASURES_VK model_column_list ) ( model_column_partition_part )? ) ;
    public final void model_column_clauses() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:957:5: ( ^( MODEL_COLUMN ^( DIMENSION_VK model_column_list ) ^( MEASURES_VK model_column_list ) ( model_column_partition_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:957:10: ^( MODEL_COLUMN ^( DIMENSION_VK model_column_list ) ^( MEASURES_VK model_column_list ) ( model_column_partition_part )? )
            {
            match(input,MODEL_COLUMN,FOLLOW_MODEL_COLUMN_in_model_column_clauses7886); 

            match(input, Token.DOWN, null); 
            match(input,DIMENSION_VK,FOLLOW_DIMENSION_VK_in_model_column_clauses7889); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_model_column_list_in_model_column_clauses7891);
            model_column_list();

            state._fsp--;


            match(input, Token.UP, null); 


            match(input,MEASURES_VK,FOLLOW_MEASURES_VK_in_model_column_clauses7895); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_model_column_list_in_model_column_clauses7897);
            model_column_list();

            state._fsp--;


            match(input, Token.UP, null); 


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:957:92: ( model_column_partition_part )?
            int alt270=2;
            int LA270_0 = input.LA(1);

            if ( (LA270_0==PARTITION_VK) ) {
                alt270=1;
            }
            switch (alt270) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:957:92: model_column_partition_part
                    {
                    pushFollow(FOLLOW_model_column_partition_part_in_model_column_clauses7900);
                    model_column_partition_part();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "model_column_clauses"



    // $ANTLR start "model_column_partition_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:960:1: model_column_partition_part : ^( PARTITION_VK model_column_list ) ;
    public final void model_column_partition_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:961:5: ( ^( PARTITION_VK model_column_list ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:961:10: ^( PARTITION_VK model_column_list )
            {
            match(input,PARTITION_VK,FOLLOW_PARTITION_VK_in_model_column_partition_part7923); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_model_column_list_in_model_column_partition_part7925);
            model_column_list();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "model_column_partition_part"



    // $ANTLR start "model_column_list"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:964:1: model_column_list : ^( MODEL_COLUMNS ( model_column )+ ) ;
    public final void model_column_list() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:965:5: ( ^( MODEL_COLUMNS ( model_column )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:965:10: ^( MODEL_COLUMNS ( model_column )+ )
            {
            match(input,MODEL_COLUMNS,FOLLOW_MODEL_COLUMNS_in_model_column_list7947); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:965:26: ( model_column )+
            int cnt271=0;
            loop271:
            do {
                int alt271=2;
                int LA271_0 = input.LA(1);

                if ( (LA271_0==MODEL_COLUMN) ) {
                    alt271=1;
                }


                switch (alt271) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:965:26: model_column
            	    {
            	    pushFollow(FOLLOW_model_column_in_model_column_list7949);
            	    model_column();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt271 >= 1 ) break loop271;
                        EarlyExitException eee =
                            new EarlyExitException(271, input);
                        throw eee;
                }
                cnt271++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "model_column_list"



    // $ANTLR start "model_column"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:968:1: model_column : ^( MODEL_COLUMN ( alias )? expression ) ;
    public final void model_column() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:969:5: ( ^( MODEL_COLUMN ( alias )? expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:969:10: ^( MODEL_COLUMN ( alias )? expression )
            {
            match(input,MODEL_COLUMN,FOLLOW_MODEL_COLUMN_in_model_column7972); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:969:25: ( alias )?
            int alt272=2;
            int LA272_0 = input.LA(1);

            if ( (LA272_0==ALIAS) ) {
                alt272=1;
            }
            switch (alt272) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:969:25: alias
                    {
                    pushFollow(FOLLOW_alias_in_model_column7974);
                    alias();

                    state._fsp--;


                    }
                    break;

            }


            pushFollow(FOLLOW_expression_in_model_column7977);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "model_column"



    // $ANTLR start "model_rules_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:972:1: model_rules_clause : ^( MODEL_RULES ( model_rules_element )+ ( model_rules_part )? ) ;
    public final void model_rules_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:973:5: ( ^( MODEL_RULES ( model_rules_element )+ ( model_rules_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:973:10: ^( MODEL_RULES ( model_rules_element )+ ( model_rules_part )? )
            {
            match(input,MODEL_RULES,FOLLOW_MODEL_RULES_in_model_rules_clause8000); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:973:24: ( model_rules_element )+
            int cnt273=0;
            loop273:
            do {
                int alt273=2;
                int LA273_0 = input.LA(1);

                if ( (LA273_0==MODEL_RULE) ) {
                    alt273=1;
                }


                switch (alt273) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:973:24: model_rules_element
            	    {
            	    pushFollow(FOLLOW_model_rules_element_in_model_rules_clause8002);
            	    model_rules_element();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt273 >= 1 ) break loop273;
                        EarlyExitException eee =
                            new EarlyExitException(273, input);
                        throw eee;
                }
                cnt273++;
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:973:45: ( model_rules_part )?
            int alt274=2;
            int LA274_0 = input.LA(1);

            if ( (LA274_0==RULES_VK) ) {
                alt274=1;
            }
            switch (alt274) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:973:45: model_rules_part
                    {
                    pushFollow(FOLLOW_model_rules_part_in_model_rules_clause8005);
                    model_rules_part();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "model_rules_clause"



    // $ANTLR start "model_rules_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:976:1: model_rules_part : ^( RULES_VK ( SQL92_RESERVED_UPDATE | UPSERT_VK ( SQL92_RESERVED_ALL )? )? ( AUTOMATIC_VK | SEQUENTIAL_VK )? ( model_iterate_clause )? ) ;
    public final void model_rules_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:977:5: ( ^( RULES_VK ( SQL92_RESERVED_UPDATE | UPSERT_VK ( SQL92_RESERVED_ALL )? )? ( AUTOMATIC_VK | SEQUENTIAL_VK )? ( model_iterate_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:977:10: ^( RULES_VK ( SQL92_RESERVED_UPDATE | UPSERT_VK ( SQL92_RESERVED_ALL )? )? ( AUTOMATIC_VK | SEQUENTIAL_VK )? ( model_iterate_clause )? )
            {
            match(input,RULES_VK,FOLLOW_RULES_VK_in_model_rules_part8028); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:978:13: ( SQL92_RESERVED_UPDATE | UPSERT_VK ( SQL92_RESERVED_ALL )? )?
                int alt276=3;
                int LA276_0 = input.LA(1);

                if ( (LA276_0==SQL92_RESERVED_UPDATE) ) {
                    alt276=1;
                }
                else if ( (LA276_0==UPSERT_VK) ) {
                    alt276=2;
                }
                switch (alt276) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:978:14: SQL92_RESERVED_UPDATE
                        {
                        match(input,SQL92_RESERVED_UPDATE,FOLLOW_SQL92_RESERVED_UPDATE_in_model_rules_part8044); 

                        }
                        break;
                    case 2 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:978:36: UPSERT_VK ( SQL92_RESERVED_ALL )?
                        {
                        match(input,UPSERT_VK,FOLLOW_UPSERT_VK_in_model_rules_part8046); 

                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:978:46: ( SQL92_RESERVED_ALL )?
                        int alt275=2;
                        int LA275_0 = input.LA(1);

                        if ( (LA275_0==SQL92_RESERVED_ALL) ) {
                            alt275=1;
                        }
                        switch (alt275) {
                            case 1 :
                                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:978:46: SQL92_RESERVED_ALL
                                {
                                match(input,SQL92_RESERVED_ALL,FOLLOW_SQL92_RESERVED_ALL_in_model_rules_part8048); 

                                }
                                break;

                        }


                        }
                        break;

                }


                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:979:13: ( AUTOMATIC_VK | SEQUENTIAL_VK )?
                int alt277=2;
                int LA277_0 = input.LA(1);

                if ( (LA277_0==AUTOMATIC_VK||LA277_0==SEQUENTIAL_VK) ) {
                    alt277=1;
                }
                switch (alt277) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                        {
                        if ( input.LA(1)==AUTOMATIC_VK||input.LA(1)==SEQUENTIAL_VK ) {
                            input.consume();
                            state.errorRecovery=false;
                        }
                        else {
                            MismatchedSetException mse = new MismatchedSetException(null,input);
                            throw mse;
                        }


                        }
                        break;

                }


                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:980:13: ( model_iterate_clause )?
                int alt278=2;
                int LA278_0 = input.LA(1);

                if ( (LA278_0==ITERATE_VK) ) {
                    alt278=1;
                }
                switch (alt278) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:980:13: model_iterate_clause
                        {
                        pushFollow(FOLLOW_model_iterate_clause_in_model_rules_part8086);
                        model_iterate_clause();

                        state._fsp--;


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "model_rules_part"



    // $ANTLR start "model_rules_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:984:1: model_rules_element : ^( MODEL_RULE ^( ASSIGN model_expression expression ) ( SQL92_RESERVED_UPDATE | UPSERT_VK ( SQL92_RESERVED_ALL )? )? ( order_by_clause )? ) ;
    public final void model_rules_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:985:5: ( ^( MODEL_RULE ^( ASSIGN model_expression expression ) ( SQL92_RESERVED_UPDATE | UPSERT_VK ( SQL92_RESERVED_ALL )? )? ( order_by_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:985:10: ^( MODEL_RULE ^( ASSIGN model_expression expression ) ( SQL92_RESERVED_UPDATE | UPSERT_VK ( SQL92_RESERVED_ALL )? )? ( order_by_clause )? )
            {
            match(input,MODEL_RULE,FOLLOW_MODEL_RULE_in_model_rules_element8118); 

            match(input, Token.DOWN, null); 
            match(input,ASSIGN,FOLLOW_ASSIGN_in_model_rules_element8134); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_model_expression_in_model_rules_element8136);
            model_expression();

            state._fsp--;


            pushFollow(FOLLOW_expression_in_model_rules_element8138);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:987:13: ( SQL92_RESERVED_UPDATE | UPSERT_VK ( SQL92_RESERVED_ALL )? )?
            int alt280=3;
            int LA280_0 = input.LA(1);

            if ( (LA280_0==SQL92_RESERVED_UPDATE) ) {
                alt280=1;
            }
            else if ( (LA280_0==UPSERT_VK) ) {
                alt280=2;
            }
            switch (alt280) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:987:14: SQL92_RESERVED_UPDATE
                    {
                    match(input,SQL92_RESERVED_UPDATE,FOLLOW_SQL92_RESERVED_UPDATE_in_model_rules_element8155); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:987:36: UPSERT_VK ( SQL92_RESERVED_ALL )?
                    {
                    match(input,UPSERT_VK,FOLLOW_UPSERT_VK_in_model_rules_element8157); 

                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:987:46: ( SQL92_RESERVED_ALL )?
                    int alt279=2;
                    int LA279_0 = input.LA(1);

                    if ( (LA279_0==SQL92_RESERVED_ALL) ) {
                        alt279=1;
                    }
                    switch (alt279) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:987:46: SQL92_RESERVED_ALL
                            {
                            match(input,SQL92_RESERVED_ALL,FOLLOW_SQL92_RESERVED_ALL_in_model_rules_element8159); 

                            }
                            break;

                    }


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:988:13: ( order_by_clause )?
            int alt281=2;
            int LA281_0 = input.LA(1);

            if ( (LA281_0==SQL92_RESERVED_ORDER) ) {
                alt281=1;
            }
            switch (alt281) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:988:13: order_by_clause
                    {
                    pushFollow(FOLLOW_order_by_clause_in_model_rules_element8177);
                    order_by_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "model_rules_element"



    // $ANTLR start "model_iterate_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:992:1: model_iterate_clause : ^( ITERATE_VK expression ( until_part )? ) ;
    public final void model_iterate_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:993:5: ( ^( ITERATE_VK expression ( until_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:993:10: ^( ITERATE_VK expression ( until_part )? )
            {
            match(input,ITERATE_VK,FOLLOW_ITERATE_VK_in_model_iterate_clause8209); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_model_iterate_clause8211);
            expression();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:993:34: ( until_part )?
            int alt282=2;
            int LA282_0 = input.LA(1);

            if ( (LA282_0==UNTIL_VK) ) {
                alt282=1;
            }
            switch (alt282) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:993:34: until_part
                    {
                    pushFollow(FOLLOW_until_part_in_model_iterate_clause8213);
                    until_part();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "model_iterate_clause"



    // $ANTLR start "until_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:996:1: until_part : ^( UNTIL_VK expression ) ;
    public final void until_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:997:5: ( ^( UNTIL_VK expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:997:10: ^( UNTIL_VK expression )
            {
            match(input,UNTIL_VK,FOLLOW_UNTIL_VK_in_until_part8236); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_until_part8238);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "until_part"



    // $ANTLR start "order_by_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1000:1: order_by_clause : ^( SQL92_RESERVED_ORDER ( SIBLINGS_VK )? ^( ORDER_BY_ELEMENTS ( order_by_elements )+ ) ) ;
    public final void order_by_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1001:5: ( ^( SQL92_RESERVED_ORDER ( SIBLINGS_VK )? ^( ORDER_BY_ELEMENTS ( order_by_elements )+ ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1001:10: ^( SQL92_RESERVED_ORDER ( SIBLINGS_VK )? ^( ORDER_BY_ELEMENTS ( order_by_elements )+ ) )
            {
            match(input,SQL92_RESERVED_ORDER,FOLLOW_SQL92_RESERVED_ORDER_in_order_by_clause8260); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1001:33: ( SIBLINGS_VK )?
            int alt283=2;
            int LA283_0 = input.LA(1);

            if ( (LA283_0==SIBLINGS_VK) ) {
                alt283=1;
            }
            switch (alt283) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1001:33: SIBLINGS_VK
                    {
                    match(input,SIBLINGS_VK,FOLLOW_SIBLINGS_VK_in_order_by_clause8262); 

                    }
                    break;

            }


            match(input,ORDER_BY_ELEMENTS,FOLLOW_ORDER_BY_ELEMENTS_in_order_by_clause8266); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1001:66: ( order_by_elements )+
            int cnt284=0;
            loop284:
            do {
                int alt284=2;
                int LA284_0 = input.LA(1);

                if ( (LA284_0==ORDER_BY_ELEMENT) ) {
                    alt284=1;
                }


                switch (alt284) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1001:66: order_by_elements
            	    {
            	    pushFollow(FOLLOW_order_by_elements_in_order_by_clause8268);
            	    order_by_elements();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt284 >= 1 ) break loop284;
                        EarlyExitException eee =
                            new EarlyExitException(284, input);
                        throw eee;
                }
                cnt284++;
            } while (true);


            match(input, Token.UP, null); 


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "order_by_clause"



    // $ANTLR start "order_by_elements"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1004:1: order_by_elements : ^( ORDER_BY_ELEMENT expression ( SQL92_RESERVED_ASC | SQL92_RESERVED_DESC )? ( NULLS_VK ( FIRST_VK | LAST_VK ) )? ) ;
    public final void order_by_elements() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1005:5: ( ^( ORDER_BY_ELEMENT expression ( SQL92_RESERVED_ASC | SQL92_RESERVED_DESC )? ( NULLS_VK ( FIRST_VK | LAST_VK ) )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1005:10: ^( ORDER_BY_ELEMENT expression ( SQL92_RESERVED_ASC | SQL92_RESERVED_DESC )? ( NULLS_VK ( FIRST_VK | LAST_VK ) )? )
            {
            match(input,ORDER_BY_ELEMENT,FOLLOW_ORDER_BY_ELEMENT_in_order_by_elements8292); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_order_by_elements8294);
            expression();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1005:40: ( SQL92_RESERVED_ASC | SQL92_RESERVED_DESC )?
            int alt285=2;
            int LA285_0 = input.LA(1);

            if ( (LA285_0==SQL92_RESERVED_ASC||LA285_0==SQL92_RESERVED_DESC) ) {
                alt285=1;
            }
            switch (alt285) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                    {
                    if ( input.LA(1)==SQL92_RESERVED_ASC||input.LA(1)==SQL92_RESERVED_DESC ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1005:82: ( NULLS_VK ( FIRST_VK | LAST_VK ) )?
            int alt286=2;
            int LA286_0 = input.LA(1);

            if ( (LA286_0==NULLS_VK) ) {
                alt286=1;
            }
            switch (alt286) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1005:83: NULLS_VK ( FIRST_VK | LAST_VK )
                    {
                    match(input,NULLS_VK,FOLLOW_NULLS_VK_in_order_by_elements8304); 

                    if ( input.LA(1)==FIRST_VK||input.LA(1)==LAST_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "order_by_elements"



    // $ANTLR start "for_update_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1008:1: for_update_clause : ^( SQL92_RESERVED_FOR ( for_update_of_part )? ( for_update_options )? ) ;
    public final void for_update_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1009:5: ( ^( SQL92_RESERVED_FOR ( for_update_of_part )? ( for_update_options )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1009:10: ^( SQL92_RESERVED_FOR ( for_update_of_part )? ( for_update_options )? )
            {
            match(input,SQL92_RESERVED_FOR,FOLLOW_SQL92_RESERVED_FOR_in_for_update_clause8334); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1009:31: ( for_update_of_part )?
                int alt287=2;
                int LA287_0 = input.LA(1);

                if ( (LA287_0==SQL92_RESERVED_OF) ) {
                    alt287=1;
                }
                switch (alt287) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1009:31: for_update_of_part
                        {
                        pushFollow(FOLLOW_for_update_of_part_in_for_update_clause8336);
                        for_update_of_part();

                        state._fsp--;


                        }
                        break;

                }


                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1009:51: ( for_update_options )?
                int alt288=2;
                int LA288_0 = input.LA(1);

                if ( (LA288_0==PLSQL_RESERVED_NOWAIT||LA288_0==SKIP_VK||LA288_0==WAIT_VK) ) {
                    alt288=1;
                }
                switch (alt288) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1009:51: for_update_options
                        {
                        pushFollow(FOLLOW_for_update_options_in_for_update_clause8339);
                        for_update_options();

                        state._fsp--;


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "for_update_clause"



    // $ANTLR start "for_update_of_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1012:1: for_update_of_part : ^( SQL92_RESERVED_OF ( column_name )+ ) ;
    public final void for_update_of_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1013:5: ( ^( SQL92_RESERVED_OF ( column_name )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1013:10: ^( SQL92_RESERVED_OF ( column_name )+ )
            {
            match(input,SQL92_RESERVED_OF,FOLLOW_SQL92_RESERVED_OF_in_for_update_of_part8362); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1013:30: ( column_name )+
            int cnt289=0;
            loop289:
            do {
                int alt289=2;
                int LA289_0 = input.LA(1);

                if ( (LA289_0==COLUMN_NAME) ) {
                    alt289=1;
                }


                switch (alt289) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1013:30: column_name
            	    {
            	    pushFollow(FOLLOW_column_name_in_for_update_of_part8364);
            	    column_name();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt289 >= 1 ) break loop289;
                        EarlyExitException eee =
                            new EarlyExitException(289, input);
                        throw eee;
                }
                cnt289++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "for_update_of_part"



    // $ANTLR start "for_update_options"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1016:1: for_update_options : ( SKIP_VK | PLSQL_RESERVED_NOWAIT | ^( WAIT_VK expression ) );
    public final void for_update_options() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1017:5: ( SKIP_VK | PLSQL_RESERVED_NOWAIT | ^( WAIT_VK expression ) )
            int alt290=3;
            switch ( input.LA(1) ) {
            case SKIP_VK:
                {
                alt290=1;
                }
                break;
            case PLSQL_RESERVED_NOWAIT:
                {
                alt290=2;
                }
                break;
            case WAIT_VK:
                {
                alt290=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 290, 0, input);

                throw nvae;

            }

            switch (alt290) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1017:10: SKIP_VK
                    {
                    match(input,SKIP_VK,FOLLOW_SKIP_VK_in_for_update_options8386); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1018:10: PLSQL_RESERVED_NOWAIT
                    {
                    match(input,PLSQL_RESERVED_NOWAIT,FOLLOW_PLSQL_RESERVED_NOWAIT_in_for_update_options8397); 

                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1019:10: ^( WAIT_VK expression )
                    {
                    match(input,WAIT_VK,FOLLOW_WAIT_VK_in_for_update_options8409); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_for_update_options8411);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "for_update_options"



    // $ANTLR start "update_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1024:1: update_statement : ^( SQL92_RESERVED_UPDATE general_table_ref update_set_clause ( where_clause )? ( static_returning_clause )? ( error_logging_clause )? ) ;
    public final void update_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1025:5: ( ^( SQL92_RESERVED_UPDATE general_table_ref update_set_clause ( where_clause )? ( static_returning_clause )? ( error_logging_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1025:10: ^( SQL92_RESERVED_UPDATE general_table_ref update_set_clause ( where_clause )? ( static_returning_clause )? ( error_logging_clause )? )
            {
            match(input,SQL92_RESERVED_UPDATE,FOLLOW_SQL92_RESERVED_UPDATE_in_update_statement8435); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_general_table_ref_in_update_statement8437);
            general_table_ref();

            state._fsp--;


            pushFollow(FOLLOW_update_set_clause_in_update_statement8451);
            update_set_clause();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1027:13: ( where_clause )?
            int alt291=2;
            int LA291_0 = input.LA(1);

            if ( (LA291_0==SQL92_RESERVED_WHERE) ) {
                alt291=1;
            }
            switch (alt291) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1027:13: where_clause
                    {
                    pushFollow(FOLLOW_where_clause_in_update_statement8465);
                    where_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1027:27: ( static_returning_clause )?
            int alt292=2;
            int LA292_0 = input.LA(1);

            if ( (LA292_0==STATIC_RETURNING) ) {
                alt292=1;
            }
            switch (alt292) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1027:27: static_returning_clause
                    {
                    pushFollow(FOLLOW_static_returning_clause_in_update_statement8468);
                    static_returning_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1027:52: ( error_logging_clause )?
            int alt293=2;
            int LA293_0 = input.LA(1);

            if ( (LA293_0==LOG_VK) ) {
                alt293=1;
            }
            switch (alt293) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1027:52: error_logging_clause
                    {
                    pushFollow(FOLLOW_error_logging_clause_in_update_statement8471);
                    error_logging_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "update_statement"



    // $ANTLR start "update_set_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1032:1: update_set_clause : ^( SET_VK ( update_set_elements )+ ) ;
    public final void update_set_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1033:5: ( ^( SET_VK ( update_set_elements )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1033:10: ^( SET_VK ( update_set_elements )+ )
            {
            match(input,SET_VK,FOLLOW_SET_VK_in_update_set_clause8504); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1033:19: ( update_set_elements )+
            int cnt294=0;
            loop294:
            do {
                int alt294=2;
                int LA294_0 = input.LA(1);

                if ( (LA294_0==ASSIGN||LA294_0==VALUE_VK) ) {
                    alt294=1;
                }


                switch (alt294) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1033:19: update_set_elements
            	    {
            	    pushFollow(FOLLOW_update_set_elements_in_update_set_clause8506);
            	    update_set_elements();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt294 >= 1 ) break loop294;
                        EarlyExitException eee =
                            new EarlyExitException(294, input);
                        throw eee;
                }
                cnt294++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "update_set_clause"



    // $ANTLR start "update_set_elements"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1036:1: update_set_elements : ( ^( ASSIGN column_name expression ) | ^( ASSIGN ( column_name )+ subquery ) | ^( VALUE_VK ( char_set_name )? ID expression ) );
    public final void update_set_elements() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1037:5: ( ^( ASSIGN column_name expression ) | ^( ASSIGN ( column_name )+ subquery ) | ^( VALUE_VK ( char_set_name )? ID expression ) )
            int alt297=3;
            alt297 = dfa297.predict(input);
            switch (alt297) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1037:10: ^( ASSIGN column_name expression )
                    {
                    match(input,ASSIGN,FOLLOW_ASSIGN_in_update_set_elements8529); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_column_name_in_update_set_elements8531);
                    column_name();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_in_update_set_elements8533);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1038:10: ^( ASSIGN ( column_name )+ subquery )
                    {
                    match(input,ASSIGN,FOLLOW_ASSIGN_in_update_set_elements8546); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1038:19: ( column_name )+
                    int cnt295=0;
                    loop295:
                    do {
                        int alt295=2;
                        int LA295_0 = input.LA(1);

                        if ( (LA295_0==COLUMN_NAME) ) {
                            alt295=1;
                        }


                        switch (alt295) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1038:19: column_name
                    	    {
                    	    pushFollow(FOLLOW_column_name_in_update_set_elements8548);
                    	    column_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt295 >= 1 ) break loop295;
                                EarlyExitException eee =
                                    new EarlyExitException(295, input);
                                throw eee;
                        }
                        cnt295++;
                    } while (true);


                    pushFollow(FOLLOW_subquery_in_update_set_elements8551);
                    subquery();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1039:10: ^( VALUE_VK ( char_set_name )? ID expression )
                    {
                    match(input,VALUE_VK,FOLLOW_VALUE_VK_in_update_set_elements8564); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1039:21: ( char_set_name )?
                    int alt296=2;
                    int LA296_0 = input.LA(1);

                    if ( (LA296_0==CHAR_SET_NAME) ) {
                        alt296=1;
                    }
                    switch (alt296) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1039:21: char_set_name
                            {
                            pushFollow(FOLLOW_char_set_name_in_update_set_elements8566);
                            char_set_name();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input,ID,FOLLOW_ID_in_update_set_elements8569); 

                    pushFollow(FOLLOW_expression_in_update_set_elements8571);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "update_set_elements"



    // $ANTLR start "delete_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1044:1: delete_statement : ^( SQL92_RESERVED_DELETE general_table_ref ( where_clause )? ( static_returning_clause )? ( error_logging_clause )? ) ;
    public final void delete_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1045:5: ( ^( SQL92_RESERVED_DELETE general_table_ref ( where_clause )? ( static_returning_clause )? ( error_logging_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1045:10: ^( SQL92_RESERVED_DELETE general_table_ref ( where_clause )? ( static_returning_clause )? ( error_logging_clause )? )
            {
            match(input,SQL92_RESERVED_DELETE,FOLLOW_SQL92_RESERVED_DELETE_in_delete_statement8595); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_general_table_ref_in_delete_statement8597);
            general_table_ref();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1046:13: ( where_clause )?
            int alt298=2;
            int LA298_0 = input.LA(1);

            if ( (LA298_0==SQL92_RESERVED_WHERE) ) {
                alt298=1;
            }
            switch (alt298) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1046:13: where_clause
                    {
                    pushFollow(FOLLOW_where_clause_in_delete_statement8611);
                    where_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1046:27: ( static_returning_clause )?
            int alt299=2;
            int LA299_0 = input.LA(1);

            if ( (LA299_0==STATIC_RETURNING) ) {
                alt299=1;
            }
            switch (alt299) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1046:27: static_returning_clause
                    {
                    pushFollow(FOLLOW_static_returning_clause_in_delete_statement8614);
                    static_returning_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1046:52: ( error_logging_clause )?
            int alt300=2;
            int LA300_0 = input.LA(1);

            if ( (LA300_0==LOG_VK) ) {
                alt300=1;
            }
            switch (alt300) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1046:52: error_logging_clause
                    {
                    pushFollow(FOLLOW_error_logging_clause_in_delete_statement8617);
                    error_logging_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "delete_statement"



    // $ANTLR start "insert_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1049:1: insert_statement : ^( SQL92_RESERVED_INSERT ( single_table_insert | multi_table_insert ) ) ;
    public final void insert_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1050:5: ( ^( SQL92_RESERVED_INSERT ( single_table_insert | multi_table_insert ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1050:10: ^( SQL92_RESERVED_INSERT ( single_table_insert | multi_table_insert ) )
            {
            match(input,SQL92_RESERVED_INSERT,FOLLOW_SQL92_RESERVED_INSERT_in_insert_statement8640); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1051:9: ( single_table_insert | multi_table_insert )
            int alt301=2;
            int LA301_0 = input.LA(1);

            if ( (LA301_0==SINGLE_TABLE_MODE) ) {
                alt301=1;
            }
            else if ( (LA301_0==MULTI_TABLE_MODE) ) {
                alt301=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 301, 0, input);

                throw nvae;

            }
            switch (alt301) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1051:14: single_table_insert
                    {
                    pushFollow(FOLLOW_single_table_insert_in_insert_statement8655);
                    single_table_insert();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1052:14: multi_table_insert
                    {
                    pushFollow(FOLLOW_multi_table_insert_in_insert_statement8670);
                    multi_table_insert();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "insert_statement"



    // $ANTLR start "single_table_insert"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1059:1: single_table_insert : ^( SINGLE_TABLE_MODE insert_into_clause ( values_clause ( static_returning_clause )? | select_statement ) ( error_logging_clause )? ) ;
    public final void single_table_insert() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1060:5: ( ^( SINGLE_TABLE_MODE insert_into_clause ( values_clause ( static_returning_clause )? | select_statement ) ( error_logging_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1060:10: ^( SINGLE_TABLE_MODE insert_into_clause ( values_clause ( static_returning_clause )? | select_statement ) ( error_logging_clause )? )
            {
            match(input,SINGLE_TABLE_MODE,FOLLOW_SINGLE_TABLE_MODE_in_single_table_insert8713); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_insert_into_clause_in_single_table_insert8715);
            insert_into_clause();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1060:49: ( values_clause ( static_returning_clause )? | select_statement )
            int alt303=2;
            int LA303_0 = input.LA(1);

            if ( (LA303_0==SQL92_RESERVED_VALUES) ) {
                alt303=1;
            }
            else if ( (LA303_0==SELECT_STATEMENT) ) {
                alt303=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 303, 0, input);

                throw nvae;

            }
            switch (alt303) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1060:50: values_clause ( static_returning_clause )?
                    {
                    pushFollow(FOLLOW_values_clause_in_single_table_insert8718);
                    values_clause();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1060:64: ( static_returning_clause )?
                    int alt302=2;
                    int LA302_0 = input.LA(1);

                    if ( (LA302_0==STATIC_RETURNING) ) {
                        alt302=1;
                    }
                    switch (alt302) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1060:64: static_returning_clause
                            {
                            pushFollow(FOLLOW_static_returning_clause_in_single_table_insert8720);
                            static_returning_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1060:90: select_statement
                    {
                    pushFollow(FOLLOW_select_statement_in_single_table_insert8724);
                    select_statement();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1060:108: ( error_logging_clause )?
            int alt304=2;
            int LA304_0 = input.LA(1);

            if ( (LA304_0==LOG_VK) ) {
                alt304=1;
            }
            switch (alt304) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1060:108: error_logging_clause
                    {
                    pushFollow(FOLLOW_error_logging_clause_in_single_table_insert8727);
                    error_logging_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "single_table_insert"



    // $ANTLR start "multi_table_insert"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1063:1: multi_table_insert : ^( MULTI_TABLE_MODE select_statement ( conditional_insert_clause | ( multi_table_element )+ ) ) ;
    public final void multi_table_insert() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1064:5: ( ^( MULTI_TABLE_MODE select_statement ( conditional_insert_clause | ( multi_table_element )+ ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1064:10: ^( MULTI_TABLE_MODE select_statement ( conditional_insert_clause | ( multi_table_element )+ ) )
            {
            match(input,MULTI_TABLE_MODE,FOLLOW_MULTI_TABLE_MODE_in_multi_table_insert8750); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_select_statement_in_multi_table_insert8752);
            select_statement();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1064:46: ( conditional_insert_clause | ( multi_table_element )+ )
            int alt306=2;
            int LA306_0 = input.LA(1);

            if ( (LA306_0==CONDITIONAL_INSERT) ) {
                alt306=1;
            }
            else if ( (LA306_0==TABLE_ELEMENT) ) {
                alt306=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 306, 0, input);

                throw nvae;

            }
            switch (alt306) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1064:47: conditional_insert_clause
                    {
                    pushFollow(FOLLOW_conditional_insert_clause_in_multi_table_insert8755);
                    conditional_insert_clause();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1064:73: ( multi_table_element )+
                    {
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1064:73: ( multi_table_element )+
                    int cnt305=0;
                    loop305:
                    do {
                        int alt305=2;
                        int LA305_0 = input.LA(1);

                        if ( (LA305_0==TABLE_ELEMENT) ) {
                            alt305=1;
                        }


                        switch (alt305) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1064:73: multi_table_element
                    	    {
                    	    pushFollow(FOLLOW_multi_table_element_in_multi_table_insert8757);
                    	    multi_table_element();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt305 >= 1 ) break loop305;
                                EarlyExitException eee =
                                    new EarlyExitException(305, input);
                                throw eee;
                        }
                        cnt305++;
                    } while (true);


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "multi_table_insert"



    // $ANTLR start "multi_table_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1067:1: multi_table_element : ^( TABLE_ELEMENT insert_into_clause ( values_clause )? ( error_logging_clause )? ) ;
    public final void multi_table_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1068:5: ( ^( TABLE_ELEMENT insert_into_clause ( values_clause )? ( error_logging_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1068:10: ^( TABLE_ELEMENT insert_into_clause ( values_clause )? ( error_logging_clause )? )
            {
            match(input,TABLE_ELEMENT,FOLLOW_TABLE_ELEMENT_in_multi_table_element8781); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_insert_into_clause_in_multi_table_element8783);
            insert_into_clause();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1068:45: ( values_clause )?
            int alt307=2;
            int LA307_0 = input.LA(1);

            if ( (LA307_0==SQL92_RESERVED_VALUES) ) {
                alt307=1;
            }
            switch (alt307) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1068:45: values_clause
                    {
                    pushFollow(FOLLOW_values_clause_in_multi_table_element8785);
                    values_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1068:60: ( error_logging_clause )?
            int alt308=2;
            int LA308_0 = input.LA(1);

            if ( (LA308_0==LOG_VK) ) {
                alt308=1;
            }
            switch (alt308) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1068:60: error_logging_clause
                    {
                    pushFollow(FOLLOW_error_logging_clause_in_multi_table_element8788);
                    error_logging_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "multi_table_element"



    // $ANTLR start "conditional_insert_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1071:1: conditional_insert_clause : ^( CONDITIONAL_INSERT ( SQL92_RESERVED_ALL | FIRST_VK )? ( conditional_insert_when_part )+ ( conditional_insert_else_part )? ) ;
    public final void conditional_insert_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1072:5: ( ^( CONDITIONAL_INSERT ( SQL92_RESERVED_ALL | FIRST_VK )? ( conditional_insert_when_part )+ ( conditional_insert_else_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1072:10: ^( CONDITIONAL_INSERT ( SQL92_RESERVED_ALL | FIRST_VK )? ( conditional_insert_when_part )+ ( conditional_insert_else_part )? )
            {
            match(input,CONDITIONAL_INSERT,FOLLOW_CONDITIONAL_INSERT_in_conditional_insert_clause8811); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1072:31: ( SQL92_RESERVED_ALL | FIRST_VK )?
            int alt309=2;
            int LA309_0 = input.LA(1);

            if ( (LA309_0==SQL92_RESERVED_ALL||LA309_0==FIRST_VK) ) {
                alt309=1;
            }
            switch (alt309) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                    {
                    if ( input.LA(1)==SQL92_RESERVED_ALL||input.LA(1)==FIRST_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1072:62: ( conditional_insert_when_part )+
            int cnt310=0;
            loop310:
            do {
                int alt310=2;
                int LA310_0 = input.LA(1);

                if ( (LA310_0==SQL92_RESERVED_WHEN) ) {
                    alt310=1;
                }


                switch (alt310) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1072:62: conditional_insert_when_part
            	    {
            	    pushFollow(FOLLOW_conditional_insert_when_part_in_conditional_insert_clause8820);
            	    conditional_insert_when_part();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt310 >= 1 ) break loop310;
                        EarlyExitException eee =
                            new EarlyExitException(310, input);
                        throw eee;
                }
                cnt310++;
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1072:92: ( conditional_insert_else_part )?
            int alt311=2;
            int LA311_0 = input.LA(1);

            if ( (LA311_0==SQL92_RESERVED_ELSE) ) {
                alt311=1;
            }
            switch (alt311) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1072:92: conditional_insert_else_part
                    {
                    pushFollow(FOLLOW_conditional_insert_else_part_in_conditional_insert_clause8823);
                    conditional_insert_else_part();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "conditional_insert_clause"



    // $ANTLR start "conditional_insert_when_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1075:1: conditional_insert_when_part : ^( SQL92_RESERVED_WHEN expression ( multi_table_element )+ ) ;
    public final void conditional_insert_when_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1076:5: ( ^( SQL92_RESERVED_WHEN expression ( multi_table_element )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1076:10: ^( SQL92_RESERVED_WHEN expression ( multi_table_element )+ )
            {
            match(input,SQL92_RESERVED_WHEN,FOLLOW_SQL92_RESERVED_WHEN_in_conditional_insert_when_part8847); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_conditional_insert_when_part8849);
            expression();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1076:43: ( multi_table_element )+
            int cnt312=0;
            loop312:
            do {
                int alt312=2;
                int LA312_0 = input.LA(1);

                if ( (LA312_0==TABLE_ELEMENT) ) {
                    alt312=1;
                }


                switch (alt312) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1076:43: multi_table_element
            	    {
            	    pushFollow(FOLLOW_multi_table_element_in_conditional_insert_when_part8851);
            	    multi_table_element();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt312 >= 1 ) break loop312;
                        EarlyExitException eee =
                            new EarlyExitException(312, input);
                        throw eee;
                }
                cnt312++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "conditional_insert_when_part"



    // $ANTLR start "conditional_insert_else_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1079:1: conditional_insert_else_part : ^( SQL92_RESERVED_ELSE ( multi_table_element )+ ) ;
    public final void conditional_insert_else_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1080:5: ( ^( SQL92_RESERVED_ELSE ( multi_table_element )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1080:10: ^( SQL92_RESERVED_ELSE ( multi_table_element )+ )
            {
            match(input,SQL92_RESERVED_ELSE,FOLLOW_SQL92_RESERVED_ELSE_in_conditional_insert_else_part8874); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1080:32: ( multi_table_element )+
            int cnt313=0;
            loop313:
            do {
                int alt313=2;
                int LA313_0 = input.LA(1);

                if ( (LA313_0==TABLE_ELEMENT) ) {
                    alt313=1;
                }


                switch (alt313) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1080:32: multi_table_element
            	    {
            	    pushFollow(FOLLOW_multi_table_element_in_conditional_insert_else_part8876);
            	    multi_table_element();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt313 >= 1 ) break loop313;
                        EarlyExitException eee =
                            new EarlyExitException(313, input);
                        throw eee;
                }
                cnt313++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "conditional_insert_else_part"



    // $ANTLR start "insert_into_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1083:1: insert_into_clause : ^( SQL92_RESERVED_INTO general_table_ref ^( COLUMNS ( column_name )* ) ) ;
    public final void insert_into_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1084:5: ( ^( SQL92_RESERVED_INTO general_table_ref ^( COLUMNS ( column_name )* ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1084:10: ^( SQL92_RESERVED_INTO general_table_ref ^( COLUMNS ( column_name )* ) )
            {
            match(input,SQL92_RESERVED_INTO,FOLLOW_SQL92_RESERVED_INTO_in_insert_into_clause8899); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_general_table_ref_in_insert_into_clause8901);
            general_table_ref();

            state._fsp--;


            match(input,COLUMNS,FOLLOW_COLUMNS_in_insert_into_clause8904); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1084:60: ( column_name )*
                loop314:
                do {
                    int alt314=2;
                    int LA314_0 = input.LA(1);

                    if ( (LA314_0==COLUMN_NAME) ) {
                        alt314=1;
                    }


                    switch (alt314) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1084:60: column_name
                	    {
                	    pushFollow(FOLLOW_column_name_in_insert_into_clause8906);
                	    column_name();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop314;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "insert_into_clause"



    // $ANTLR start "values_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1087:1: values_clause : ^( SQL92_RESERVED_VALUES expression_list ) ;
    public final void values_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1088:5: ( ^( SQL92_RESERVED_VALUES expression_list ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1088:10: ^( SQL92_RESERVED_VALUES expression_list )
            {
            match(input,SQL92_RESERVED_VALUES,FOLLOW_SQL92_RESERVED_VALUES_in_values_clause8930); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_list_in_values_clause8932);
            expression_list();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "values_clause"



    // $ANTLR start "merge_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1092:1: merge_statement : ^( MERGE_VK ( alias )? tableview_name ^( PLSQL_NON_RESERVED_USING selected_tableview expression ) ( merge_update_clause )? ( merge_insert_clause )? ( error_logging_clause )? ) ;
    public final void merge_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1093:5: ( ^( MERGE_VK ( alias )? tableview_name ^( PLSQL_NON_RESERVED_USING selected_tableview expression ) ( merge_update_clause )? ( merge_insert_clause )? ( error_logging_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1093:10: ^( MERGE_VK ( alias )? tableview_name ^( PLSQL_NON_RESERVED_USING selected_tableview expression ) ( merge_update_clause )? ( merge_insert_clause )? ( error_logging_clause )? )
            {
            match(input,MERGE_VK,FOLLOW_MERGE_VK_in_merge_statement8955); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1093:21: ( alias )?
            int alt315=2;
            int LA315_0 = input.LA(1);

            if ( (LA315_0==ALIAS) ) {
                alt315=1;
            }
            switch (alt315) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1093:21: alias
                    {
                    pushFollow(FOLLOW_alias_in_merge_statement8957);
                    alias();

                    state._fsp--;


                    }
                    break;

            }


            pushFollow(FOLLOW_tableview_name_in_merge_statement8960);
            tableview_name();

            state._fsp--;


            match(input,PLSQL_NON_RESERVED_USING,FOLLOW_PLSQL_NON_RESERVED_USING_in_merge_statement8976); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_selected_tableview_in_merge_statement8978);
            selected_tableview();

            state._fsp--;


            pushFollow(FOLLOW_expression_in_merge_statement8980);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1095:14: ( merge_update_clause )?
            int alt316=2;
            int LA316_0 = input.LA(1);

            if ( (LA316_0==MERGE_UPDATE) ) {
                alt316=1;
            }
            switch (alt316) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1095:14: merge_update_clause
                    {
                    pushFollow(FOLLOW_merge_update_clause_in_merge_statement8996);
                    merge_update_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1095:35: ( merge_insert_clause )?
            int alt317=2;
            int LA317_0 = input.LA(1);

            if ( (LA317_0==MERGE_INSERT) ) {
                alt317=1;
            }
            switch (alt317) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1095:35: merge_insert_clause
                    {
                    pushFollow(FOLLOW_merge_insert_clause_in_merge_statement8999);
                    merge_insert_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1095:56: ( error_logging_clause )?
            int alt318=2;
            int LA318_0 = input.LA(1);

            if ( (LA318_0==LOG_VK) ) {
                alt318=1;
            }
            switch (alt318) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1095:56: error_logging_clause
                    {
                    pushFollow(FOLLOW_error_logging_clause_in_merge_statement9002);
                    error_logging_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "merge_statement"



    // $ANTLR start "merge_update_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1100:1: merge_update_clause : ^( MERGE_UPDATE ( merge_element )+ ( where_clause )? ( merge_update_delete_part )? ) ;
    public final void merge_update_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1101:5: ( ^( MERGE_UPDATE ( merge_element )+ ( where_clause )? ( merge_update_delete_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1101:10: ^( MERGE_UPDATE ( merge_element )+ ( where_clause )? ( merge_update_delete_part )? )
            {
            match(input,MERGE_UPDATE,FOLLOW_MERGE_UPDATE_in_merge_update_clause9027); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1101:25: ( merge_element )+
            int cnt319=0;
            loop319:
            do {
                int alt319=2;
                int LA319_0 = input.LA(1);

                if ( (LA319_0==ASSIGN) ) {
                    alt319=1;
                }


                switch (alt319) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1101:25: merge_element
            	    {
            	    pushFollow(FOLLOW_merge_element_in_merge_update_clause9029);
            	    merge_element();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt319 >= 1 ) break loop319;
                        EarlyExitException eee =
                            new EarlyExitException(319, input);
                        throw eee;
                }
                cnt319++;
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1101:40: ( where_clause )?
            int alt320=2;
            int LA320_0 = input.LA(1);

            if ( (LA320_0==SQL92_RESERVED_WHERE) ) {
                alt320=1;
            }
            switch (alt320) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1101:40: where_clause
                    {
                    pushFollow(FOLLOW_where_clause_in_merge_update_clause9032);
                    where_clause();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1101:54: ( merge_update_delete_part )?
            int alt321=2;
            int LA321_0 = input.LA(1);

            if ( (LA321_0==SQL92_RESERVED_DELETE) ) {
                alt321=1;
            }
            switch (alt321) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1101:54: merge_update_delete_part
                    {
                    pushFollow(FOLLOW_merge_update_delete_part_in_merge_update_clause9035);
                    merge_update_delete_part();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "merge_update_clause"



    // $ANTLR start "merge_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1104:1: merge_element : ^( ASSIGN column_name expression ) ;
    public final void merge_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1105:5: ( ^( ASSIGN column_name expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1105:10: ^( ASSIGN column_name expression )
            {
            match(input,ASSIGN,FOLLOW_ASSIGN_in_merge_element9058); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_column_name_in_merge_element9060);
            column_name();

            state._fsp--;


            pushFollow(FOLLOW_expression_in_merge_element9062);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "merge_element"



    // $ANTLR start "merge_update_delete_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1108:1: merge_update_delete_part : ^( SQL92_RESERVED_DELETE where_clause ) ;
    public final void merge_update_delete_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1109:5: ( ^( SQL92_RESERVED_DELETE where_clause ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1109:10: ^( SQL92_RESERVED_DELETE where_clause )
            {
            match(input,SQL92_RESERVED_DELETE,FOLLOW_SQL92_RESERVED_DELETE_in_merge_update_delete_part9084); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_where_clause_in_merge_update_delete_part9086);
            where_clause();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "merge_update_delete_part"



    // $ANTLR start "merge_insert_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1112:1: merge_insert_clause : ^( MERGE_INSERT ^( COLUMNS ( column_name )* ) expression_list ( where_clause )? ) ;
    public final void merge_insert_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1113:5: ( ^( MERGE_INSERT ^( COLUMNS ( column_name )* ) expression_list ( where_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1113:10: ^( MERGE_INSERT ^( COLUMNS ( column_name )* ) expression_list ( where_clause )? )
            {
            match(input,MERGE_INSERT,FOLLOW_MERGE_INSERT_in_merge_insert_clause9108); 

            match(input, Token.DOWN, null); 
            match(input,COLUMNS,FOLLOW_COLUMNS_in_merge_insert_clause9111); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1113:35: ( column_name )*
                loop322:
                do {
                    int alt322=2;
                    int LA322_0 = input.LA(1);

                    if ( (LA322_0==COLUMN_NAME) ) {
                        alt322=1;
                    }


                    switch (alt322) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1113:35: column_name
                	    {
                	    pushFollow(FOLLOW_column_name_in_merge_insert_clause9113);
                	    column_name();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop322;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            pushFollow(FOLLOW_expression_list_in_merge_insert_clause9117);
            expression_list();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1113:65: ( where_clause )?
            int alt323=2;
            int LA323_0 = input.LA(1);

            if ( (LA323_0==SQL92_RESERVED_WHERE) ) {
                alt323=1;
            }
            switch (alt323) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1113:65: where_clause
                    {
                    pushFollow(FOLLOW_where_clause_in_merge_insert_clause9119);
                    where_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "merge_insert_clause"



    // $ANTLR start "selected_tableview"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1116:1: selected_tableview : ^( SELECTED_TABLEVIEW ( alias )? ( tableview_name | subquery ) ) ;
    public final void selected_tableview() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1117:5: ( ^( SELECTED_TABLEVIEW ( alias )? ( tableview_name | subquery ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1117:10: ^( SELECTED_TABLEVIEW ( alias )? ( tableview_name | subquery ) )
            {
            match(input,SELECTED_TABLEVIEW,FOLLOW_SELECTED_TABLEVIEW_in_selected_tableview9143); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1117:31: ( alias )?
            int alt324=2;
            int LA324_0 = input.LA(1);

            if ( (LA324_0==ALIAS) ) {
                alt324=1;
            }
            switch (alt324) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1117:31: alias
                    {
                    pushFollow(FOLLOW_alias_in_selected_tableview9145);
                    alias();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1117:38: ( tableview_name | subquery )
            int alt325=2;
            int LA325_0 = input.LA(1);

            if ( (LA325_0==TABLEVIEW_NAME) ) {
                alt325=1;
            }
            else if ( (LA325_0==SUBQUERY) ) {
                alt325=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 325, 0, input);

                throw nvae;

            }
            switch (alt325) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1117:39: tableview_name
                    {
                    pushFollow(FOLLOW_tableview_name_in_selected_tableview9149);
                    tableview_name();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1117:54: subquery
                    {
                    pushFollow(FOLLOW_subquery_in_selected_tableview9151);
                    subquery();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "selected_tableview"



    // $ANTLR start "lock_table_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1122:1: lock_table_statement : ^( PLSQL_RESERVED_LOCK ( lock_table_element )+ lock_mode ( wait_nowait_part )? ) ;
    public final void lock_table_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1123:5: ( ^( PLSQL_RESERVED_LOCK ( lock_table_element )+ lock_mode ( wait_nowait_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1123:10: ^( PLSQL_RESERVED_LOCK ( lock_table_element )+ lock_mode ( wait_nowait_part )? )
            {
            match(input,PLSQL_RESERVED_LOCK,FOLLOW_PLSQL_RESERVED_LOCK_in_lock_table_statement9176); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1123:32: ( lock_table_element )+
            int cnt326=0;
            loop326:
            do {
                int alt326=2;
                int LA326_0 = input.LA(1);

                if ( (LA326_0==LOCK_TABLE_ELEMENT) ) {
                    alt326=1;
                }


                switch (alt326) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1123:32: lock_table_element
            	    {
            	    pushFollow(FOLLOW_lock_table_element_in_lock_table_statement9178);
            	    lock_table_element();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt326 >= 1 ) break loop326;
                        EarlyExitException eee =
                            new EarlyExitException(326, input);
                        throw eee;
                }
                cnt326++;
            } while (true);


            pushFollow(FOLLOW_lock_mode_in_lock_table_statement9181);
            lock_mode();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1123:62: ( wait_nowait_part )?
            int alt327=2;
            int LA327_0 = input.LA(1);

            if ( (LA327_0==PLSQL_RESERVED_NOWAIT||LA327_0==WAIT_VK) ) {
                alt327=1;
            }
            switch (alt327) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1123:62: wait_nowait_part
                    {
                    pushFollow(FOLLOW_wait_nowait_part_in_lock_table_statement9183);
                    wait_nowait_part();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "lock_table_statement"



    // $ANTLR start "wait_nowait_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1126:1: wait_nowait_part : ( ^( WAIT_VK expression ) | PLSQL_RESERVED_NOWAIT );
    public final void wait_nowait_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1127:5: ( ^( WAIT_VK expression ) | PLSQL_RESERVED_NOWAIT )
            int alt328=2;
            int LA328_0 = input.LA(1);

            if ( (LA328_0==WAIT_VK) ) {
                alt328=1;
            }
            else if ( (LA328_0==PLSQL_RESERVED_NOWAIT) ) {
                alt328=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 328, 0, input);

                throw nvae;

            }
            switch (alt328) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1127:10: ^( WAIT_VK expression )
                    {
                    match(input,WAIT_VK,FOLLOW_WAIT_VK_in_wait_nowait_part9206); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_wait_nowait_part9208);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1128:10: PLSQL_RESERVED_NOWAIT
                    {
                    match(input,PLSQL_RESERVED_NOWAIT,FOLLOW_PLSQL_RESERVED_NOWAIT_in_wait_nowait_part9220); 

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "wait_nowait_part"



    // $ANTLR start "lock_table_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1133:1: lock_table_element : ^( LOCK_TABLE_ELEMENT tableview_name ( partition_extension_clause )? ) ;
    public final void lock_table_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1134:5: ( ^( LOCK_TABLE_ELEMENT tableview_name ( partition_extension_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1134:10: ^( LOCK_TABLE_ELEMENT tableview_name ( partition_extension_clause )? )
            {
            match(input,LOCK_TABLE_ELEMENT,FOLLOW_LOCK_TABLE_ELEMENT_in_lock_table_element9243); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_tableview_name_in_lock_table_element9245);
            tableview_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1134:46: ( partition_extension_clause )?
            int alt329=2;
            int LA329_0 = input.LA(1);

            if ( (LA329_0==PARTITION_VK||LA329_0==SUBPARTITION_VK) ) {
                alt329=1;
            }
            switch (alt329) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1134:46: partition_extension_clause
                    {
                    pushFollow(FOLLOW_partition_extension_clause_in_lock_table_element9247);
                    partition_extension_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "lock_table_element"



    // $ANTLR start "lock_mode"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1137:1: lock_mode : ( ROW_VK PLSQL_RESERVED_SHARE | ROW_VK PLSQL_RESERVED_EXCLUSIVE | PLSQL_RESERVED_SHARE ( SQL92_RESERVED_UPDATE )? | PLSQL_RESERVED_SHARE ROW_VK PLSQL_RESERVED_EXCLUSIVE | PLSQL_RESERVED_EXCLUSIVE );
    public final void lock_mode() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1138:5: ( ROW_VK PLSQL_RESERVED_SHARE | ROW_VK PLSQL_RESERVED_EXCLUSIVE | PLSQL_RESERVED_SHARE ( SQL92_RESERVED_UPDATE )? | PLSQL_RESERVED_SHARE ROW_VK PLSQL_RESERVED_EXCLUSIVE | PLSQL_RESERVED_EXCLUSIVE )
            int alt331=5;
            switch ( input.LA(1) ) {
            case ROW_VK:
                {
                int LA331_1 = input.LA(2);

                if ( (LA331_1==PLSQL_RESERVED_SHARE) ) {
                    alt331=1;
                }
                else if ( (LA331_1==PLSQL_RESERVED_EXCLUSIVE) ) {
                    alt331=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 331, 1, input);

                    throw nvae;

                }
                }
                break;
            case PLSQL_RESERVED_SHARE:
                {
                int LA331_2 = input.LA(2);

                if ( (LA331_2==ROW_VK) ) {
                    alt331=4;
                }
                else if ( (LA331_2==UP||LA331_2==PLSQL_RESERVED_NOWAIT||LA331_2==SQL92_RESERVED_UPDATE||LA331_2==WAIT_VK) ) {
                    alt331=3;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 331, 2, input);

                    throw nvae;

                }
                }
                break;
            case PLSQL_RESERVED_EXCLUSIVE:
                {
                alt331=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 331, 0, input);

                throw nvae;

            }

            switch (alt331) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1138:10: ROW_VK PLSQL_RESERVED_SHARE
                    {
                    match(input,ROW_VK,FOLLOW_ROW_VK_in_lock_mode9269); 

                    match(input,PLSQL_RESERVED_SHARE,FOLLOW_PLSQL_RESERVED_SHARE_in_lock_mode9271); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1139:10: ROW_VK PLSQL_RESERVED_EXCLUSIVE
                    {
                    match(input,ROW_VK,FOLLOW_ROW_VK_in_lock_mode9282); 

                    match(input,PLSQL_RESERVED_EXCLUSIVE,FOLLOW_PLSQL_RESERVED_EXCLUSIVE_in_lock_mode9284); 

                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1140:10: PLSQL_RESERVED_SHARE ( SQL92_RESERVED_UPDATE )?
                    {
                    match(input,PLSQL_RESERVED_SHARE,FOLLOW_PLSQL_RESERVED_SHARE_in_lock_mode9295); 

                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1140:31: ( SQL92_RESERVED_UPDATE )?
                    int alt330=2;
                    int LA330_0 = input.LA(1);

                    if ( (LA330_0==SQL92_RESERVED_UPDATE) ) {
                        alt330=1;
                    }
                    switch (alt330) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1140:31: SQL92_RESERVED_UPDATE
                            {
                            match(input,SQL92_RESERVED_UPDATE,FOLLOW_SQL92_RESERVED_UPDATE_in_lock_mode9297); 

                            }
                            break;

                    }


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1141:10: PLSQL_RESERVED_SHARE ROW_VK PLSQL_RESERVED_EXCLUSIVE
                    {
                    match(input,PLSQL_RESERVED_SHARE,FOLLOW_PLSQL_RESERVED_SHARE_in_lock_mode9309); 

                    match(input,ROW_VK,FOLLOW_ROW_VK_in_lock_mode9311); 

                    match(input,PLSQL_RESERVED_EXCLUSIVE,FOLLOW_PLSQL_RESERVED_EXCLUSIVE_in_lock_mode9313); 

                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1142:10: PLSQL_RESERVED_EXCLUSIVE
                    {
                    match(input,PLSQL_RESERVED_EXCLUSIVE,FOLLOW_PLSQL_RESERVED_EXCLUSIVE_in_lock_mode9324); 

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "lock_mode"



    // $ANTLR start "general_table_ref"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1148:1: general_table_ref : ^( TABLE_REF ( alias )? dml_table_expression_clause ( ONLY_VK )? ) ;
    public final void general_table_ref() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1149:5: ( ^( TABLE_REF ( alias )? dml_table_expression_clause ( ONLY_VK )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1149:10: ^( TABLE_REF ( alias )? dml_table_expression_clause ( ONLY_VK )? )
            {
            match(input,TABLE_REF,FOLLOW_TABLE_REF_in_general_table_ref9348); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1149:22: ( alias )?
            int alt332=2;
            int LA332_0 = input.LA(1);

            if ( (LA332_0==ALIAS) ) {
                alt332=1;
            }
            switch (alt332) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1149:22: alias
                    {
                    pushFollow(FOLLOW_alias_in_general_table_ref9350);
                    alias();

                    state._fsp--;


                    }
                    break;

            }


            pushFollow(FOLLOW_dml_table_expression_clause_in_general_table_ref9353);
            dml_table_expression_clause();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1149:57: ( ONLY_VK )?
            int alt333=2;
            int LA333_0 = input.LA(1);

            if ( (LA333_0==ONLY_VK) ) {
                alt333=1;
            }
            switch (alt333) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1149:57: ONLY_VK
                    {
                    match(input,ONLY_VK,FOLLOW_ONLY_VK_in_general_table_ref9355); 

                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "general_table_ref"



    // $ANTLR start "static_returning_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1152:1: static_returning_clause : ^( STATIC_RETURNING ( expression )+ into_clause ) ;
    public final void static_returning_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1153:5: ( ^( STATIC_RETURNING ( expression )+ into_clause ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1153:10: ^( STATIC_RETURNING ( expression )+ into_clause )
            {
            match(input,STATIC_RETURNING,FOLLOW_STATIC_RETURNING_in_static_returning_clause9378); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1153:29: ( expression )+
            int cnt334=0;
            loop334:
            do {
                int alt334=2;
                int LA334_0 = input.LA(1);

                if ( (LA334_0==EXPR||LA334_0==LOGIC_EXPR) ) {
                    alt334=1;
                }


                switch (alt334) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1153:29: expression
            	    {
            	    pushFollow(FOLLOW_expression_in_static_returning_clause9380);
            	    expression();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt334 >= 1 ) break loop334;
                        EarlyExitException eee =
                            new EarlyExitException(334, input);
                        throw eee;
                }
                cnt334++;
            } while (true);


            pushFollow(FOLLOW_into_clause_in_static_returning_clause9383);
            into_clause();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "static_returning_clause"



    // $ANTLR start "error_logging_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1156:1: error_logging_clause : ^( LOG_VK ( error_logging_into_part )? ( expression )? ( error_logging_reject_part )? ) ;
    public final void error_logging_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1157:5: ( ^( LOG_VK ( error_logging_into_part )? ( expression )? ( error_logging_reject_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1157:10: ^( LOG_VK ( error_logging_into_part )? ( expression )? ( error_logging_reject_part )? )
            {
            match(input,LOG_VK,FOLLOW_LOG_VK_in_error_logging_clause9405); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1157:19: ( error_logging_into_part )?
                int alt335=2;
                int LA335_0 = input.LA(1);

                if ( (LA335_0==SQL92_RESERVED_INTO) ) {
                    alt335=1;
                }
                switch (alt335) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1157:19: error_logging_into_part
                        {
                        pushFollow(FOLLOW_error_logging_into_part_in_error_logging_clause9407);
                        error_logging_into_part();

                        state._fsp--;


                        }
                        break;

                }


                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1157:44: ( expression )?
                int alt336=2;
                int LA336_0 = input.LA(1);

                if ( (LA336_0==EXPR||LA336_0==LOGIC_EXPR) ) {
                    alt336=1;
                }
                switch (alt336) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1157:44: expression
                        {
                        pushFollow(FOLLOW_expression_in_error_logging_clause9410);
                        expression();

                        state._fsp--;


                        }
                        break;

                }


                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1157:56: ( error_logging_reject_part )?
                int alt337=2;
                int LA337_0 = input.LA(1);

                if ( (LA337_0==REJECT_VK) ) {
                    alt337=1;
                }
                switch (alt337) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1157:56: error_logging_reject_part
                        {
                        pushFollow(FOLLOW_error_logging_reject_part_in_error_logging_clause9413);
                        error_logging_reject_part();

                        state._fsp--;


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "error_logging_clause"



    // $ANTLR start "error_logging_into_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1160:1: error_logging_into_part : ^( SQL92_RESERVED_INTO tableview_name ) ;
    public final void error_logging_into_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1161:5: ( ^( SQL92_RESERVED_INTO tableview_name ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1161:10: ^( SQL92_RESERVED_INTO tableview_name )
            {
            match(input,SQL92_RESERVED_INTO,FOLLOW_SQL92_RESERVED_INTO_in_error_logging_into_part9436); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_tableview_name_in_error_logging_into_part9438);
            tableview_name();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "error_logging_into_part"



    // $ANTLR start "error_logging_reject_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1164:1: error_logging_reject_part : ^( REJECT_VK ( UNLIMITED_VK | expression ) ) ;
    public final void error_logging_reject_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1165:5: ( ^( REJECT_VK ( UNLIMITED_VK | expression ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1165:10: ^( REJECT_VK ( UNLIMITED_VK | expression ) )
            {
            match(input,REJECT_VK,FOLLOW_REJECT_VK_in_error_logging_reject_part9460); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1165:22: ( UNLIMITED_VK | expression )
            int alt338=2;
            int LA338_0 = input.LA(1);

            if ( (LA338_0==UNLIMITED_VK) ) {
                alt338=1;
            }
            else if ( (LA338_0==EXPR||LA338_0==LOGIC_EXPR) ) {
                alt338=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 338, 0, input);

                throw nvae;

            }
            switch (alt338) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1165:23: UNLIMITED_VK
                    {
                    match(input,UNLIMITED_VK,FOLLOW_UNLIMITED_VK_in_error_logging_reject_part9463); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1165:36: expression
                    {
                    pushFollow(FOLLOW_expression_in_error_logging_reject_part9465);
                    expression();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "error_logging_reject_part"



    // $ANTLR start "dml_table_expression_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1168:1: dml_table_expression_clause : ^( TABLE_EXPRESSION ( ^( COLLECTION_MODE expression ( PLUS_SIGN )? ) | ^( SELECT_MODE select_statement ( subquery_restriction_clause )? ) | ^( DIRECT_MODE tableview_name ( sample_clause )? ) ) ) ;
    public final void dml_table_expression_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1169:5: ( ^( TABLE_EXPRESSION ( ^( COLLECTION_MODE expression ( PLUS_SIGN )? ) | ^( SELECT_MODE select_statement ( subquery_restriction_clause )? ) | ^( DIRECT_MODE tableview_name ( sample_clause )? ) ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1169:10: ^( TABLE_EXPRESSION ( ^( COLLECTION_MODE expression ( PLUS_SIGN )? ) | ^( SELECT_MODE select_statement ( subquery_restriction_clause )? ) | ^( DIRECT_MODE tableview_name ( sample_clause )? ) ) )
            {
            match(input,TABLE_EXPRESSION,FOLLOW_TABLE_EXPRESSION_in_dml_table_expression_clause9488); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1170:9: ( ^( COLLECTION_MODE expression ( PLUS_SIGN )? ) | ^( SELECT_MODE select_statement ( subquery_restriction_clause )? ) | ^( DIRECT_MODE tableview_name ( sample_clause )? ) )
            int alt342=3;
            switch ( input.LA(1) ) {
            case COLLECTION_MODE:
                {
                alt342=1;
                }
                break;
            case SELECT_MODE:
                {
                alt342=2;
                }
                break;
            case DIRECT_MODE:
                {
                alt342=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 342, 0, input);

                throw nvae;

            }

            switch (alt342) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1170:14: ^( COLLECTION_MODE expression ( PLUS_SIGN )? )
                    {
                    match(input,COLLECTION_MODE,FOLLOW_COLLECTION_MODE_in_dml_table_expression_clause9505); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_dml_table_expression_clause9507);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1170:43: ( PLUS_SIGN )?
                    int alt339=2;
                    int LA339_0 = input.LA(1);

                    if ( (LA339_0==PLUS_SIGN) ) {
                        alt339=1;
                    }
                    switch (alt339) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1170:43: PLUS_SIGN
                            {
                            match(input,PLUS_SIGN,FOLLOW_PLUS_SIGN_in_dml_table_expression_clause9509); 

                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1171:14: ^( SELECT_MODE select_statement ( subquery_restriction_clause )? )
                    {
                    match(input,SELECT_MODE,FOLLOW_SELECT_MODE_in_dml_table_expression_clause9527); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_select_statement_in_dml_table_expression_clause9529);
                    select_statement();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1171:45: ( subquery_restriction_clause )?
                    int alt340=2;
                    int LA340_0 = input.LA(1);

                    if ( (LA340_0==SQL92_RESERVED_WITH) ) {
                        alt340=1;
                    }
                    switch (alt340) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1171:45: subquery_restriction_clause
                            {
                            pushFollow(FOLLOW_subquery_restriction_clause_in_dml_table_expression_clause9531);
                            subquery_restriction_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1172:14: ^( DIRECT_MODE tableview_name ( sample_clause )? )
                    {
                    match(input,DIRECT_MODE,FOLLOW_DIRECT_MODE_in_dml_table_expression_clause9549); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_tableview_name_in_dml_table_expression_clause9551);
                    tableview_name();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1172:43: ( sample_clause )?
                    int alt341=2;
                    int LA341_0 = input.LA(1);

                    if ( (LA341_0==SAMPLE_VK) ) {
                        alt341=1;
                    }
                    switch (alt341) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1172:43: sample_clause
                            {
                            pushFollow(FOLLOW_sample_clause_in_dml_table_expression_clause9553);
                            sample_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "dml_table_expression_clause"



    // $ANTLR start "subquery_restriction_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1177:1: subquery_restriction_clause : ^( SQL92_RESERVED_WITH ( READ_VK | SQL92_RESERVED_CHECK ( constraint_name )? ) ) ;
    public final void subquery_restriction_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1178:5: ( ^( SQL92_RESERVED_WITH ( READ_VK | SQL92_RESERVED_CHECK ( constraint_name )? ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1178:10: ^( SQL92_RESERVED_WITH ( READ_VK | SQL92_RESERVED_CHECK ( constraint_name )? ) )
            {
            match(input,SQL92_RESERVED_WITH,FOLLOW_SQL92_RESERVED_WITH_in_subquery_restriction_clause9596); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1178:32: ( READ_VK | SQL92_RESERVED_CHECK ( constraint_name )? )
            int alt344=2;
            int LA344_0 = input.LA(1);

            if ( (LA344_0==READ_VK) ) {
                alt344=1;
            }
            else if ( (LA344_0==SQL92_RESERVED_CHECK) ) {
                alt344=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 344, 0, input);

                throw nvae;

            }
            switch (alt344) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1178:33: READ_VK
                    {
                    match(input,READ_VK,FOLLOW_READ_VK_in_subquery_restriction_clause9599); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1178:41: SQL92_RESERVED_CHECK ( constraint_name )?
                    {
                    match(input,SQL92_RESERVED_CHECK,FOLLOW_SQL92_RESERVED_CHECK_in_subquery_restriction_clause9601); 

                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1178:62: ( constraint_name )?
                    int alt343=2;
                    int LA343_0 = input.LA(1);

                    if ( (LA343_0==CONSTRAINT_NAME) ) {
                        alt343=1;
                    }
                    switch (alt343) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1178:62: constraint_name
                            {
                            pushFollow(FOLLOW_constraint_name_in_subquery_restriction_clause9603);
                            constraint_name();

                            state._fsp--;


                            }
                            break;

                    }


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "subquery_restriction_clause"



    // $ANTLR start "sample_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1181:1: sample_clause : ^( SAMPLE_VK ( BLOCK_VK )? expression ( seed_part )? ) ;
    public final void sample_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1182:5: ( ^( SAMPLE_VK ( BLOCK_VK )? expression ( seed_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1182:10: ^( SAMPLE_VK ( BLOCK_VK )? expression ( seed_part )? )
            {
            match(input,SAMPLE_VK,FOLLOW_SAMPLE_VK_in_sample_clause9627); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1182:22: ( BLOCK_VK )?
            int alt345=2;
            int LA345_0 = input.LA(1);

            if ( (LA345_0==BLOCK_VK) ) {
                alt345=1;
            }
            switch (alt345) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1182:22: BLOCK_VK
                    {
                    match(input,BLOCK_VK,FOLLOW_BLOCK_VK_in_sample_clause9629); 

                    }
                    break;

            }


            pushFollow(FOLLOW_expression_in_sample_clause9632);
            expression();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1182:43: ( seed_part )?
            int alt346=2;
            int LA346_0 = input.LA(1);

            if ( (LA346_0==SEED_VK) ) {
                alt346=1;
            }
            switch (alt346) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1182:43: seed_part
                    {
                    pushFollow(FOLLOW_seed_part_in_sample_clause9634);
                    seed_part();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "sample_clause"



    // $ANTLR start "seed_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1185:1: seed_part : ^( SEED_VK expression ) ;
    public final void seed_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1186:5: ( ^( SEED_VK expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1186:10: ^( SEED_VK expression )
            {
            match(input,SEED_VK,FOLLOW_SEED_VK_in_seed_part9658); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_seed_part9660);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "seed_part"



    // $ANTLR start "cursor_manipulation_statements"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1195:1: cursor_manipulation_statements : ( close_statement | open_statement | fetch_statement | open_for_statement );
    public final void cursor_manipulation_statements() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1196:5: ( close_statement | open_statement | fetch_statement | open_for_statement )
            int alt347=4;
            switch ( input.LA(1) ) {
            case CLOSE_VK:
                {
                alt347=1;
                }
                break;
            case OPEN_VK:
                {
                int LA347_2 = input.LA(2);

                if ( (LA347_2==DOWN) ) {
                    int LA347_4 = input.LA(3);

                    if ( (LA347_4==CURSOR_NAME) ) {
                        alt347=2;
                    }
                    else if ( (LA347_4==HOSTED_VARIABLE_NAME||LA347_4==VARIABLE_NAME) ) {
                        alt347=4;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 347, 4, input);

                        throw nvae;

                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 347, 2, input);

                    throw nvae;

                }
                }
                break;
            case SQL92_RESERVED_FETCH:
                {
                alt347=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 347, 0, input);

                throw nvae;

            }

            switch (alt347) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1196:10: close_statement
                    {
                    pushFollow(FOLLOW_close_statement_in_cursor_manipulation_statements9687);
                    close_statement();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1197:10: open_statement
                    {
                    pushFollow(FOLLOW_open_statement_in_cursor_manipulation_statements9698);
                    open_statement();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1198:10: fetch_statement
                    {
                    pushFollow(FOLLOW_fetch_statement_in_cursor_manipulation_statements9709);
                    fetch_statement();

                    state._fsp--;


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1199:10: open_for_statement
                    {
                    pushFollow(FOLLOW_open_for_statement_in_cursor_manipulation_statements9720);
                    open_for_statement();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "cursor_manipulation_statements"



    // $ANTLR start "close_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1202:1: close_statement : ^( CLOSE_VK variable_name ) ;
    public final void close_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1203:5: ( ^( CLOSE_VK variable_name ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1203:11: ^( CLOSE_VK variable_name )
            {
            match(input,CLOSE_VK,FOLLOW_CLOSE_VK_in_close_statement9742); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_variable_name_in_close_statement9744);
            variable_name();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "close_statement"



    // $ANTLR start "open_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1206:1: open_statement : ^( OPEN_VK cursor_name ( expression_list )? ) ;
    public final void open_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1207:5: ( ^( OPEN_VK cursor_name ( expression_list )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1207:10: ^( OPEN_VK cursor_name ( expression_list )? )
            {
            match(input,OPEN_VK,FOLLOW_OPEN_VK_in_open_statement9767); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_cursor_name_in_open_statement9769);
            cursor_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1207:32: ( expression_list )?
            int alt348=2;
            int LA348_0 = input.LA(1);

            if ( (LA348_0==EXPR_LIST) ) {
                alt348=1;
            }
            switch (alt348) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1207:32: expression_list
                    {
                    pushFollow(FOLLOW_expression_list_in_open_statement9771);
                    expression_list();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "open_statement"



    // $ANTLR start "fetch_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1210:1: fetch_statement : ^( SQL92_RESERVED_FETCH cursor_name ( ^( SQL92_RESERVED_INTO ( variable_name )+ ) | ^( BULK_VK ( variable_name )+ ) ) ) ;
    public final void fetch_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1211:5: ( ^( SQL92_RESERVED_FETCH cursor_name ( ^( SQL92_RESERVED_INTO ( variable_name )+ ) | ^( BULK_VK ( variable_name )+ ) ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1211:10: ^( SQL92_RESERVED_FETCH cursor_name ( ^( SQL92_RESERVED_INTO ( variable_name )+ ) | ^( BULK_VK ( variable_name )+ ) ) )
            {
            match(input,SQL92_RESERVED_FETCH,FOLLOW_SQL92_RESERVED_FETCH_in_fetch_statement9794); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_cursor_name_in_fetch_statement9796);
            cursor_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1212:13: ( ^( SQL92_RESERVED_INTO ( variable_name )+ ) | ^( BULK_VK ( variable_name )+ ) )
            int alt351=2;
            int LA351_0 = input.LA(1);

            if ( (LA351_0==SQL92_RESERVED_INTO) ) {
                alt351=1;
            }
            else if ( (LA351_0==BULK_VK) ) {
                alt351=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 351, 0, input);

                throw nvae;

            }
            switch (alt351) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1212:18: ^( SQL92_RESERVED_INTO ( variable_name )+ )
                    {
                    match(input,SQL92_RESERVED_INTO,FOLLOW_SQL92_RESERVED_INTO_in_fetch_statement9817); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1212:40: ( variable_name )+
                    int cnt349=0;
                    loop349:
                    do {
                        int alt349=2;
                        int LA349_0 = input.LA(1);

                        if ( (LA349_0==HOSTED_VARIABLE_NAME||LA349_0==VARIABLE_NAME) ) {
                            alt349=1;
                        }


                        switch (alt349) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1212:40: variable_name
                    	    {
                    	    pushFollow(FOLLOW_variable_name_in_fetch_statement9819);
                    	    variable_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt349 >= 1 ) break loop349;
                                EarlyExitException eee =
                                    new EarlyExitException(349, input);
                                throw eee;
                        }
                        cnt349++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1213:18: ^( BULK_VK ( variable_name )+ )
                    {
                    match(input,BULK_VK,FOLLOW_BULK_VK_in_fetch_statement9841); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1213:28: ( variable_name )+
                    int cnt350=0;
                    loop350:
                    do {
                        int alt350=2;
                        int LA350_0 = input.LA(1);

                        if ( (LA350_0==HOSTED_VARIABLE_NAME||LA350_0==VARIABLE_NAME) ) {
                            alt350=1;
                        }


                        switch (alt350) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1213:28: variable_name
                    	    {
                    	    pushFollow(FOLLOW_variable_name_in_fetch_statement9843);
                    	    variable_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt350 >= 1 ) break loop350;
                                EarlyExitException eee =
                                    new EarlyExitException(350, input);
                                throw eee;
                        }
                        cnt350++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "fetch_statement"



    // $ANTLR start "open_for_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1218:1: open_for_statement : ^( OPEN_VK variable_name ( expression | select_statement ) ( using_clause )? ) ;
    public final void open_for_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1219:5: ( ^( OPEN_VK variable_name ( expression | select_statement ) ( using_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1219:10: ^( OPEN_VK variable_name ( expression | select_statement ) ( using_clause )? )
            {
            match(input,OPEN_VK,FOLLOW_OPEN_VK_in_open_for_statement9890); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_variable_name_in_open_for_statement9892);
            variable_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1219:34: ( expression | select_statement )
            int alt352=2;
            int LA352_0 = input.LA(1);

            if ( (LA352_0==EXPR||LA352_0==LOGIC_EXPR) ) {
                alt352=1;
            }
            else if ( (LA352_0==SELECT_STATEMENT) ) {
                alt352=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 352, 0, input);

                throw nvae;

            }
            switch (alt352) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1219:35: expression
                    {
                    pushFollow(FOLLOW_expression_in_open_for_statement9895);
                    expression();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1219:46: select_statement
                    {
                    pushFollow(FOLLOW_select_statement_in_open_for_statement9897);
                    select_statement();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1219:64: ( using_clause )?
            int alt353=2;
            int LA353_0 = input.LA(1);

            if ( (LA353_0==PLSQL_NON_RESERVED_USING) ) {
                alt353=1;
            }
            switch (alt353) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1219:64: using_clause
                    {
                    pushFollow(FOLLOW_using_clause_in_open_for_statement9900);
                    using_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "open_for_statement"



    // $ANTLR start "transaction_control_statements"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1226:1: transaction_control_statements : ( set_transaction_command | set_constraint_command | commit_statement | rollback_statement | savepoint_statement );
    public final void transaction_control_statements() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1227:5: ( set_transaction_command | set_constraint_command | commit_statement | rollback_statement | savepoint_statement )
            int alt354=5;
            switch ( input.LA(1) ) {
            case SET_TRANSACTION:
                {
                alt354=1;
                }
                break;
            case SET_CONSTRAINT:
                {
                alt354=2;
                }
                break;
            case COMMIT_VK:
                {
                alt354=3;
                }
                break;
            case ROLLBACK_VK:
                {
                alt354=4;
                }
                break;
            case SAVEPOINT_VK:
                {
                alt354=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 354, 0, input);

                throw nvae;

            }

            switch (alt354) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1227:10: set_transaction_command
                    {
                    pushFollow(FOLLOW_set_transaction_command_in_transaction_control_statements9926);
                    set_transaction_command();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1228:10: set_constraint_command
                    {
                    pushFollow(FOLLOW_set_constraint_command_in_transaction_control_statements9937);
                    set_constraint_command();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1229:10: commit_statement
                    {
                    pushFollow(FOLLOW_commit_statement_in_transaction_control_statements9948);
                    commit_statement();

                    state._fsp--;


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1230:10: rollback_statement
                    {
                    pushFollow(FOLLOW_rollback_statement_in_transaction_control_statements9959);
                    rollback_statement();

                    state._fsp--;


                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1231:10: savepoint_statement
                    {
                    pushFollow(FOLLOW_savepoint_statement_in_transaction_control_statements9970);
                    savepoint_statement();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "transaction_control_statements"



    // $ANTLR start "set_transaction_command"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1234:1: set_transaction_command : ^( SET_TRANSACTION ( CHAR_STRING )? ( ^( READ_VK ( ONLY_VK | WRITE_VK ) ) | ^( ISOLATION_VK ( SERIALIZABLE_VK | COMMITTED_VK ) ) | ^( ROLLBACK_VK rollback_segment_name ) )? ) ;
    public final void set_transaction_command() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1235:5: ( ^( SET_TRANSACTION ( CHAR_STRING )? ( ^( READ_VK ( ONLY_VK | WRITE_VK ) ) | ^( ISOLATION_VK ( SERIALIZABLE_VK | COMMITTED_VK ) ) | ^( ROLLBACK_VK rollback_segment_name ) )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1235:10: ^( SET_TRANSACTION ( CHAR_STRING )? ( ^( READ_VK ( ONLY_VK | WRITE_VK ) ) | ^( ISOLATION_VK ( SERIALIZABLE_VK | COMMITTED_VK ) ) | ^( ROLLBACK_VK rollback_segment_name ) )? )
            {
            match(input,SET_TRANSACTION,FOLLOW_SET_TRANSACTION_in_set_transaction_command9991); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1235:28: ( CHAR_STRING )?
                int alt355=2;
                int LA355_0 = input.LA(1);

                if ( (LA355_0==CHAR_STRING) ) {
                    alt355=1;
                }
                switch (alt355) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1235:28: CHAR_STRING
                        {
                        match(input,CHAR_STRING,FOLLOW_CHAR_STRING_in_set_transaction_command9993); 

                        }
                        break;

                }


                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1236:13: ( ^( READ_VK ( ONLY_VK | WRITE_VK ) ) | ^( ISOLATION_VK ( SERIALIZABLE_VK | COMMITTED_VK ) ) | ^( ROLLBACK_VK rollback_segment_name ) )?
                int alt356=4;
                switch ( input.LA(1) ) {
                    case READ_VK:
                        {
                        alt356=1;
                        }
                        break;
                    case ISOLATION_VK:
                        {
                        alt356=2;
                        }
                        break;
                    case ROLLBACK_VK:
                        {
                        alt356=3;
                        }
                        break;
                }

                switch (alt356) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1236:18: ^( READ_VK ( ONLY_VK | WRITE_VK ) )
                        {
                        match(input,READ_VK,FOLLOW_READ_VK_in_set_transaction_command10014); 

                        match(input, Token.DOWN, null); 
                        if ( input.LA(1)==ONLY_VK||input.LA(1)==WRITE_VK ) {
                            input.consume();
                            state.errorRecovery=false;
                        }
                        else {
                            MismatchedSetException mse = new MismatchedSetException(null,input);
                            throw mse;
                        }


                        match(input, Token.UP, null); 


                        }
                        break;
                    case 2 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1237:18: ^( ISOLATION_VK ( SERIALIZABLE_VK | COMMITTED_VK ) )
                        {
                        match(input,ISOLATION_VK,FOLLOW_ISOLATION_VK_in_set_transaction_command10041); 

                        match(input, Token.DOWN, null); 
                        if ( input.LA(1)==COMMITTED_VK||input.LA(1)==SERIALIZABLE_VK ) {
                            input.consume();
                            state.errorRecovery=false;
                        }
                        else {
                            MismatchedSetException mse = new MismatchedSetException(null,input);
                            throw mse;
                        }


                        match(input, Token.UP, null); 


                        }
                        break;
                    case 3 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1238:18: ^( ROLLBACK_VK rollback_segment_name )
                        {
                        match(input,ROLLBACK_VK,FOLLOW_ROLLBACK_VK_in_set_transaction_command10068); 

                        match(input, Token.DOWN, null); 
                        pushFollow(FOLLOW_rollback_segment_name_in_set_transaction_command10070);
                        rollback_segment_name();

                        state._fsp--;


                        match(input, Token.UP, null); 


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "set_transaction_command"



    // $ANTLR start "set_constraint_command"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1243:1: set_constraint_command : ^( SET_CONSTRAINT ( SQL92_RESERVED_ALL | ( constraint_name )+ ) ( IMMEDIATE_VK | DEFERRED_VK ) ) ;
    public final void set_constraint_command() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1244:5: ( ^( SET_CONSTRAINT ( SQL92_RESERVED_ALL | ( constraint_name )+ ) ( IMMEDIATE_VK | DEFERRED_VK ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1244:10: ^( SET_CONSTRAINT ( SQL92_RESERVED_ALL | ( constraint_name )+ ) ( IMMEDIATE_VK | DEFERRED_VK ) )
            {
            match(input,SET_CONSTRAINT,FOLLOW_SET_CONSTRAINT_in_set_constraint_command10117); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1244:27: ( SQL92_RESERVED_ALL | ( constraint_name )+ )
            int alt358=2;
            int LA358_0 = input.LA(1);

            if ( (LA358_0==SQL92_RESERVED_ALL) ) {
                alt358=1;
            }
            else if ( (LA358_0==CONSTRAINT_NAME) ) {
                alt358=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 358, 0, input);

                throw nvae;

            }
            switch (alt358) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1244:28: SQL92_RESERVED_ALL
                    {
                    match(input,SQL92_RESERVED_ALL,FOLLOW_SQL92_RESERVED_ALL_in_set_constraint_command10120); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1244:47: ( constraint_name )+
                    {
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1244:47: ( constraint_name )+
                    int cnt357=0;
                    loop357:
                    do {
                        int alt357=2;
                        int LA357_0 = input.LA(1);

                        if ( (LA357_0==CONSTRAINT_NAME) ) {
                            alt357=1;
                        }


                        switch (alt357) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1244:47: constraint_name
                    	    {
                    	    pushFollow(FOLLOW_constraint_name_in_set_constraint_command10122);
                    	    constraint_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt357 >= 1 ) break loop357;
                                EarlyExitException eee =
                                    new EarlyExitException(357, input);
                                throw eee;
                        }
                        cnt357++;
                    } while (true);


                    }
                    break;

            }


            if ( input.LA(1)==DEFERRED_VK||input.LA(1)==IMMEDIATE_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "set_constraint_command"



    // $ANTLR start "commit_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1247:1: commit_statement : ^( COMMIT_VK ( WORK_VK )? ( ^( COMMENT_VK expression ) | ^( FORCE_VK ( CORRUPT_XID_VK expression | CORRUPT_XID_ALL_VK | expression ( expression )? ) ) )? ( write_clause )? ) ;
    public final void commit_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1248:5: ( ^( COMMIT_VK ( WORK_VK )? ( ^( COMMENT_VK expression ) | ^( FORCE_VK ( CORRUPT_XID_VK expression | CORRUPT_XID_ALL_VK | expression ( expression )? ) ) )? ( write_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1248:11: ^( COMMIT_VK ( WORK_VK )? ( ^( COMMENT_VK expression ) | ^( FORCE_VK ( CORRUPT_XID_VK expression | CORRUPT_XID_ALL_VK | expression ( expression )? ) ) )? ( write_clause )? )
            {
            match(input,COMMIT_VK,FOLLOW_COMMIT_VK_in_commit_statement10153); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1248:23: ( WORK_VK )?
                int alt359=2;
                int LA359_0 = input.LA(1);

                if ( (LA359_0==WORK_VK) ) {
                    alt359=1;
                }
                switch (alt359) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1248:23: WORK_VK
                        {
                        match(input,WORK_VK,FOLLOW_WORK_VK_in_commit_statement10155); 

                        }
                        break;

                }


                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1249:13: ( ^( COMMENT_VK expression ) | ^( FORCE_VK ( CORRUPT_XID_VK expression | CORRUPT_XID_ALL_VK | expression ( expression )? ) ) )?
                int alt362=3;
                int LA362_0 = input.LA(1);

                if ( (LA362_0==COMMENT_VK) ) {
                    alt362=1;
                }
                else if ( (LA362_0==FORCE_VK) ) {
                    alt362=2;
                }
                switch (alt362) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1249:18: ^( COMMENT_VK expression )
                        {
                        match(input,COMMENT_VK,FOLLOW_COMMENT_VK_in_commit_statement10177); 

                        match(input, Token.DOWN, null); 
                        pushFollow(FOLLOW_expression_in_commit_statement10179);
                        expression();

                        state._fsp--;


                        match(input, Token.UP, null); 


                        }
                        break;
                    case 2 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1250:18: ^( FORCE_VK ( CORRUPT_XID_VK expression | CORRUPT_XID_ALL_VK | expression ( expression )? ) )
                        {
                        match(input,FORCE_VK,FOLLOW_FORCE_VK_in_commit_statement10200); 

                        match(input, Token.DOWN, null); 
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1250:29: ( CORRUPT_XID_VK expression | CORRUPT_XID_ALL_VK | expression ( expression )? )
                        int alt361=3;
                        switch ( input.LA(1) ) {
                        case CORRUPT_XID_VK:
                            {
                            alt361=1;
                            }
                            break;
                        case CORRUPT_XID_ALL_VK:
                            {
                            alt361=2;
                            }
                            break;
                        case EXPR:
                        case LOGIC_EXPR:
                            {
                            alt361=3;
                            }
                            break;
                        default:
                            NoViableAltException nvae =
                                new NoViableAltException("", 361, 0, input);

                            throw nvae;

                        }

                        switch (alt361) {
                            case 1 :
                                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1250:30: CORRUPT_XID_VK expression
                                {
                                match(input,CORRUPT_XID_VK,FOLLOW_CORRUPT_XID_VK_in_commit_statement10203); 

                                pushFollow(FOLLOW_expression_in_commit_statement10205);
                                expression();

                                state._fsp--;


                                }
                                break;
                            case 2 :
                                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1250:56: CORRUPT_XID_ALL_VK
                                {
                                match(input,CORRUPT_XID_ALL_VK,FOLLOW_CORRUPT_XID_ALL_VK_in_commit_statement10207); 

                                }
                                break;
                            case 3 :
                                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1250:75: expression ( expression )?
                                {
                                pushFollow(FOLLOW_expression_in_commit_statement10209);
                                expression();

                                state._fsp--;


                                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1250:86: ( expression )?
                                int alt360=2;
                                int LA360_0 = input.LA(1);

                                if ( (LA360_0==EXPR||LA360_0==LOGIC_EXPR) ) {
                                    alt360=1;
                                }
                                switch (alt360) {
                                    case 1 :
                                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1250:86: expression
                                        {
                                        pushFollow(FOLLOW_expression_in_commit_statement10211);
                                        expression();

                                        state._fsp--;


                                        }
                                        break;

                                }


                                }
                                break;

                        }


                        match(input, Token.UP, null); 


                        }
                        break;

                }


                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1252:13: ( write_clause )?
                int alt363=2;
                int LA363_0 = input.LA(1);

                if ( (LA363_0==WRITE_VK) ) {
                    alt363=1;
                }
                switch (alt363) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1252:13: write_clause
                        {
                        pushFollow(FOLLOW_write_clause_in_commit_statement10243);
                        write_clause();

                        state._fsp--;


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "commit_statement"



    // $ANTLR start "write_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1256:1: write_clause : ^( WRITE_VK ( WAIT_VK | PLSQL_RESERVED_NOWAIT )? ( IMMEDIATE_VK | BATCH_VK )? ) ;
    public final void write_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1257:5: ( ^( WRITE_VK ( WAIT_VK | PLSQL_RESERVED_NOWAIT )? ( IMMEDIATE_VK | BATCH_VK )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1257:10: ^( WRITE_VK ( WAIT_VK | PLSQL_RESERVED_NOWAIT )? ( IMMEDIATE_VK | BATCH_VK )? )
            {
            match(input,WRITE_VK,FOLLOW_WRITE_VK_in_write_clause10275); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1257:21: ( WAIT_VK | PLSQL_RESERVED_NOWAIT )?
                int alt364=2;
                int LA364_0 = input.LA(1);

                if ( (LA364_0==PLSQL_RESERVED_NOWAIT||LA364_0==WAIT_VK) ) {
                    alt364=1;
                }
                switch (alt364) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                        {
                        if ( input.LA(1)==PLSQL_RESERVED_NOWAIT||input.LA(1)==WAIT_VK ) {
                            input.consume();
                            state.errorRecovery=false;
                        }
                        else {
                            MismatchedSetException mse = new MismatchedSetException(null,input);
                            throw mse;
                        }


                        }
                        break;

                }


                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1257:54: ( IMMEDIATE_VK | BATCH_VK )?
                int alt365=2;
                int LA365_0 = input.LA(1);

                if ( (LA365_0==BATCH_VK||LA365_0==IMMEDIATE_VK) ) {
                    alt365=1;
                }
                switch (alt365) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                        {
                        if ( input.LA(1)==BATCH_VK||input.LA(1)==IMMEDIATE_VK ) {
                            input.consume();
                            state.errorRecovery=false;
                        }
                        else {
                            MismatchedSetException mse = new MismatchedSetException(null,input);
                            throw mse;
                        }


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "write_clause"



    // $ANTLR start "rollback_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1260:1: rollback_statement : ^( ROLLBACK_VK ( WORK_VK )? ( ^( SQL92_RESERVED_TO savepoint_name ) | ^( FORCE_VK CHAR_STRING ) )? ) ;
    public final void rollback_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1261:5: ( ^( ROLLBACK_VK ( WORK_VK )? ( ^( SQL92_RESERVED_TO savepoint_name ) | ^( FORCE_VK CHAR_STRING ) )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1261:11: ^( ROLLBACK_VK ( WORK_VK )? ( ^( SQL92_RESERVED_TO savepoint_name ) | ^( FORCE_VK CHAR_STRING ) )? )
            {
            match(input,ROLLBACK_VK,FOLLOW_ROLLBACK_VK_in_rollback_statement10312); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1261:25: ( WORK_VK )?
                int alt366=2;
                int LA366_0 = input.LA(1);

                if ( (LA366_0==WORK_VK) ) {
                    alt366=1;
                }
                switch (alt366) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1261:25: WORK_VK
                        {
                        match(input,WORK_VK,FOLLOW_WORK_VK_in_rollback_statement10314); 

                        }
                        break;

                }


                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1262:13: ( ^( SQL92_RESERVED_TO savepoint_name ) | ^( FORCE_VK CHAR_STRING ) )?
                int alt367=3;
                int LA367_0 = input.LA(1);

                if ( (LA367_0==SQL92_RESERVED_TO) ) {
                    alt367=1;
                }
                else if ( (LA367_0==FORCE_VK) ) {
                    alt367=2;
                }
                switch (alt367) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1262:18: ^( SQL92_RESERVED_TO savepoint_name )
                        {
                        match(input,SQL92_RESERVED_TO,FOLLOW_SQL92_RESERVED_TO_in_rollback_statement10336); 

                        match(input, Token.DOWN, null); 
                        pushFollow(FOLLOW_savepoint_name_in_rollback_statement10338);
                        savepoint_name();

                        state._fsp--;


                        match(input, Token.UP, null); 


                        }
                        break;
                    case 2 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1263:18: ^( FORCE_VK CHAR_STRING )
                        {
                        match(input,FORCE_VK,FOLLOW_FORCE_VK_in_rollback_statement10359); 

                        match(input, Token.DOWN, null); 
                        match(input,CHAR_STRING,FOLLOW_CHAR_STRING_in_rollback_statement10361); 

                        match(input, Token.UP, null); 


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "rollback_statement"



    // $ANTLR start "savepoint_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1268:1: savepoint_statement : ^( SAVEPOINT_VK savepoint_name ) ;
    public final void savepoint_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1269:5: ( ^( SAVEPOINT_VK savepoint_name ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1269:10: ^( SAVEPOINT_VK savepoint_name )
            {
            match(input,SAVEPOINT_VK,FOLLOW_SAVEPOINT_VK_in_savepoint_statement10408); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_savepoint_name_in_savepoint_statement10410);
            savepoint_name();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "savepoint_statement"



    // $ANTLR start "expression_list"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1276:1: expression_list : ^( EXPR_LIST ( expression )* ) ;
    public final void expression_list() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1277:5: ( ^( EXPR_LIST ( expression )* ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1277:10: ^( EXPR_LIST ( expression )* )
            {
            match(input,EXPR_LIST,FOLLOW_EXPR_LIST_in_expression_list10437); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1277:22: ( expression )*
                loop368:
                do {
                    int alt368=2;
                    int LA368_0 = input.LA(1);

                    if ( (LA368_0==EXPR||LA368_0==LOGIC_EXPR) ) {
                        alt368=1;
                    }


                    switch (alt368) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1277:22: expression
                	    {
                	    pushFollow(FOLLOW_expression_in_expression_list10439);
                	    expression();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop368;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "expression_list"



    // $ANTLR start "expression"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1280:1: expression : ( ^( LOGIC_EXPR expression_element ) | ^( EXPR expression_element ) );
    public final void expression() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1281:5: ( ^( LOGIC_EXPR expression_element ) | ^( EXPR expression_element ) )
            int alt369=2;
            int LA369_0 = input.LA(1);

            if ( (LA369_0==LOGIC_EXPR) ) {
                alt369=1;
            }
            else if ( (LA369_0==EXPR) ) {
                alt369=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 369, 0, input);

                throw nvae;

            }
            switch (alt369) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1281:10: ^( LOGIC_EXPR expression_element )
                    {
                    match(input,LOGIC_EXPR,FOLLOW_LOGIC_EXPR_in_expression10462); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression10464);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1282:10: ^( EXPR expression_element )
                    {
                    match(input,EXPR,FOLLOW_EXPR_in_expression10477); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression10479);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "expression"



    // $ANTLR start "expression_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1285:1: expression_element : ( ^( SQL92_RESERVED_OR expression_element expression_element ) | ^( SQL92_RESERVED_AND expression_element expression_element ) | ^( SQL92_RESERVED_NOT expression_element ) | ^( ( EQUALS_OP | NOT_EQUAL_OP | LESS_THAN_OP | GREATER_THAN_OP | LESS_THAN_OR_EQUALS_OP | GREATER_THAN_OR_EQUALS_OP ) expression_element expression_element ) | ^( IS_NOT_NULL expression_element ) | ^( IS_NULL expression_element ) | ^( IS_NOT_NAN expression_element ) | ^( IS_NAN expression_element ) | ^( IS_NOT_PRESENT expression_element ) | ^( IS_PRESENT expression_element ) | ^( IS_NOT_INFINITE expression_element ) | ^( IS_INFINITE expression_element ) | ^( IS_NOT_A_SET expression_element ) | ^( IS_A_SET expression_element ) | ^( IS_NOT_EMPTY expression_element ) | ^( IS_EMPTY expression_element ) | ^( IS_NOT_OF_TYPE expression_element ( type_spec )+ ) | ^( IS_OF_TYPE expression_element ( type_spec )+ ) | ^( ( MEMBER_VK | SUBMULTISET_VK ) expression_element expression_element ) | ^( NOT_IN expression_element in_elements ) | ^( SQL92_RESERVED_IN expression_element in_elements ) | ^( NOT_BETWEEN expression_element expression_element expression_element ) | ^( SQL92_RESERVED_BETWEEN expression_element expression_element expression_element ) | ^( NOT_LIKE expression_element expression_element ( expression_element )? ) | ^( ( SQL92_RESERVED_LIKE | LIKEC_VK | LIKE2_VK | LIKE4_VK ) expression_element expression_element ( expression_element )? ) | ^( CONCATENATION_OP expression_element expression_element ) | ^( PLUS_SIGN expression_element expression_element ) | ^( MINUS_SIGN expression_element expression_element ) | ^( ASTERISK expression_element expression_element ) | ^( SOLIDUS expression_element expression_element ) | ^( UNARY_OPERATOR expression_element ) | ^( SQL92_RESERVED_PRIOR expression_element ) | ^( NEW_VK expression ) | ^( SQL92_RESERVED_DISTINCT expression_element ) | ^( STANDARD_FUNCTION standard_function ) | ^( ( SOME_VK | SQL92_RESERVED_EXISTS | SQL92_RESERVED_ALL | SQL92_RESERVED_ANY ) expression_element ) | ^( VECTOR_EXPR ( expression_element )+ ) | ^( DATETIME_OP expression_element datetime_element ) | model_expression | ^( KEEP_VK expression_element DENSE_RANK_VK ( FIRST_VK | LAST_VK ) order_by_clause ( over_clause )? ) | ^( DOT_ASTERISK tableview_name ) | case_statement | constant | general_element | subquery );
    public final void expression_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1286:5: ( ^( SQL92_RESERVED_OR expression_element expression_element ) | ^( SQL92_RESERVED_AND expression_element expression_element ) | ^( SQL92_RESERVED_NOT expression_element ) | ^( ( EQUALS_OP | NOT_EQUAL_OP | LESS_THAN_OP | GREATER_THAN_OP | LESS_THAN_OR_EQUALS_OP | GREATER_THAN_OR_EQUALS_OP ) expression_element expression_element ) | ^( IS_NOT_NULL expression_element ) | ^( IS_NULL expression_element ) | ^( IS_NOT_NAN expression_element ) | ^( IS_NAN expression_element ) | ^( IS_NOT_PRESENT expression_element ) | ^( IS_PRESENT expression_element ) | ^( IS_NOT_INFINITE expression_element ) | ^( IS_INFINITE expression_element ) | ^( IS_NOT_A_SET expression_element ) | ^( IS_A_SET expression_element ) | ^( IS_NOT_EMPTY expression_element ) | ^( IS_EMPTY expression_element ) | ^( IS_NOT_OF_TYPE expression_element ( type_spec )+ ) | ^( IS_OF_TYPE expression_element ( type_spec )+ ) | ^( ( MEMBER_VK | SUBMULTISET_VK ) expression_element expression_element ) | ^( NOT_IN expression_element in_elements ) | ^( SQL92_RESERVED_IN expression_element in_elements ) | ^( NOT_BETWEEN expression_element expression_element expression_element ) | ^( SQL92_RESERVED_BETWEEN expression_element expression_element expression_element ) | ^( NOT_LIKE expression_element expression_element ( expression_element )? ) | ^( ( SQL92_RESERVED_LIKE | LIKEC_VK | LIKE2_VK | LIKE4_VK ) expression_element expression_element ( expression_element )? ) | ^( CONCATENATION_OP expression_element expression_element ) | ^( PLUS_SIGN expression_element expression_element ) | ^( MINUS_SIGN expression_element expression_element ) | ^( ASTERISK expression_element expression_element ) | ^( SOLIDUS expression_element expression_element ) | ^( UNARY_OPERATOR expression_element ) | ^( SQL92_RESERVED_PRIOR expression_element ) | ^( NEW_VK expression ) | ^( SQL92_RESERVED_DISTINCT expression_element ) | ^( STANDARD_FUNCTION standard_function ) | ^( ( SOME_VK | SQL92_RESERVED_EXISTS | SQL92_RESERVED_ALL | SQL92_RESERVED_ANY ) expression_element ) | ^( VECTOR_EXPR ( expression_element )+ ) | ^( DATETIME_OP expression_element datetime_element ) | model_expression | ^( KEEP_VK expression_element DENSE_RANK_VK ( FIRST_VK | LAST_VK ) order_by_clause ( over_clause )? ) | ^( DOT_ASTERISK tableview_name ) | case_statement | constant | general_element | subquery )
            int alt376=45;
            switch ( input.LA(1) ) {
            case SQL92_RESERVED_OR:
                {
                alt376=1;
                }
                break;
            case SQL92_RESERVED_AND:
                {
                alt376=2;
                }
                break;
            case SQL92_RESERVED_NOT:
                {
                alt376=3;
                }
                break;
            case EQUALS_OP:
            case GREATER_THAN_OP:
            case GREATER_THAN_OR_EQUALS_OP:
            case LESS_THAN_OP:
            case LESS_THAN_OR_EQUALS_OP:
            case NOT_EQUAL_OP:
                {
                alt376=4;
                }
                break;
            case IS_NOT_NULL:
                {
                alt376=5;
                }
                break;
            case IS_NULL:
                {
                alt376=6;
                }
                break;
            case IS_NOT_NAN:
                {
                alt376=7;
                }
                break;
            case IS_NAN:
                {
                alt376=8;
                }
                break;
            case IS_NOT_PRESENT:
                {
                alt376=9;
                }
                break;
            case IS_PRESENT:
                {
                alt376=10;
                }
                break;
            case IS_NOT_INFINITE:
                {
                alt376=11;
                }
                break;
            case IS_INFINITE:
                {
                alt376=12;
                }
                break;
            case IS_NOT_A_SET:
                {
                alt376=13;
                }
                break;
            case IS_A_SET:
                {
                alt376=14;
                }
                break;
            case IS_NOT_EMPTY:
                {
                alt376=15;
                }
                break;
            case IS_EMPTY:
                {
                alt376=16;
                }
                break;
            case IS_NOT_OF_TYPE:
                {
                alt376=17;
                }
                break;
            case IS_OF_TYPE:
                {
                alt376=18;
                }
                break;
            case MEMBER_VK:
            case SUBMULTISET_VK:
                {
                alt376=19;
                }
                break;
            case NOT_IN:
                {
                alt376=20;
                }
                break;
            case SQL92_RESERVED_IN:
                {
                alt376=21;
                }
                break;
            case NOT_BETWEEN:
                {
                alt376=22;
                }
                break;
            case SQL92_RESERVED_BETWEEN:
                {
                alt376=23;
                }
                break;
            case NOT_LIKE:
                {
                alt376=24;
                }
                break;
            case SQL92_RESERVED_LIKE:
            case LIKE2_VK:
            case LIKE4_VK:
            case LIKEC_VK:
                {
                alt376=25;
                }
                break;
            case CONCATENATION_OP:
                {
                alt376=26;
                }
                break;
            case PLUS_SIGN:
                {
                alt376=27;
                }
                break;
            case MINUS_SIGN:
                {
                alt376=28;
                }
                break;
            case ASTERISK:
                {
                alt376=29;
                }
                break;
            case SOLIDUS:
                {
                alt376=30;
                }
                break;
            case UNARY_OPERATOR:
                {
                alt376=31;
                }
                break;
            case SQL92_RESERVED_PRIOR:
                {
                alt376=32;
                }
                break;
            case NEW_VK:
                {
                alt376=33;
                }
                break;
            case SQL92_RESERVED_DISTINCT:
                {
                alt376=34;
                }
                break;
            case STANDARD_FUNCTION:
                {
                alt376=35;
                }
                break;
            case SQL92_RESERVED_ALL:
            case SQL92_RESERVED_ANY:
            case SQL92_RESERVED_EXISTS:
            case SOME_VK:
                {
                alt376=36;
                }
                break;
            case VECTOR_EXPR:
                {
                alt376=37;
                }
                break;
            case DATETIME_OP:
                {
                alt376=38;
                }
                break;
            case MODEL_EXPRESSION:
                {
                alt376=39;
                }
                break;
            case KEEP_VK:
                {
                alt376=40;
                }
                break;
            case DOT_ASTERISK:
                {
                alt376=41;
                }
                break;
            case SEARCHED_CASE:
            case SIMPLE_CASE:
                {
                alt376=42;
                }
                break;
            case APPROXIMATE_NUM_LIT:
            case CHAR_STRING:
            case EXACT_NUM_LIT:
            case SQL92_RESERVED_DEFAULT:
            case SQL92_RESERVED_FALSE:
            case SQL92_RESERVED_NULL:
            case SQL92_RESERVED_TRUE:
            case UNSIGNED_INTEGER:
            case DBTIMEZONE_VK:
            case MAXVALUE_VK:
            case MINVALUE_VK:
            case SESSIONTIMEZONE_VK:
                {
                alt376=43;
                }
                break;
            case ANY_ELEMENT:
            case CASCATED_ELEMENT:
            case HOSTED_VARIABLE:
            case HOSTED_VARIABLE_ROUTINE_CALL:
            case ROUTINE_CALL:
                {
                alt376=44;
                }
                break;
            case SUBQUERY:
                {
                alt376=45;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 376, 0, input);

                throw nvae;

            }

            switch (alt376) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1286:10: ^( SQL92_RESERVED_OR expression_element expression_element )
                    {
                    match(input,SQL92_RESERVED_OR,FOLLOW_SQL92_RESERVED_OR_in_expression_element10501); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10503);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element10505);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1287:10: ^( SQL92_RESERVED_AND expression_element expression_element )
                    {
                    match(input,SQL92_RESERVED_AND,FOLLOW_SQL92_RESERVED_AND_in_expression_element10518); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10520);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element10522);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1288:10: ^( SQL92_RESERVED_NOT expression_element )
                    {
                    match(input,SQL92_RESERVED_NOT,FOLLOW_SQL92_RESERVED_NOT_in_expression_element10535); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10537);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1289:10: ^( ( EQUALS_OP | NOT_EQUAL_OP | LESS_THAN_OP | GREATER_THAN_OP | LESS_THAN_OR_EQUALS_OP | GREATER_THAN_OR_EQUALS_OP ) expression_element expression_element )
                    {
                    if ( input.LA(1)==EQUALS_OP||(input.LA(1) >= GREATER_THAN_OP && input.LA(1) <= GREATER_THAN_OR_EQUALS_OP)||(input.LA(1) >= LESS_THAN_OP && input.LA(1) <= LESS_THAN_OR_EQUALS_OP)||input.LA(1)==NOT_EQUAL_OP ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10564);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element10566);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1291:10: ^( IS_NOT_NULL expression_element )
                    {
                    match(input,IS_NOT_NULL,FOLLOW_IS_NOT_NULL_in_expression_element10580); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10582);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 6 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1292:10: ^( IS_NULL expression_element )
                    {
                    match(input,IS_NULL,FOLLOW_IS_NULL_in_expression_element10595); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10597);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 7 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1293:10: ^( IS_NOT_NAN expression_element )
                    {
                    match(input,IS_NOT_NAN,FOLLOW_IS_NOT_NAN_in_expression_element10610); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10612);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 8 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1294:10: ^( IS_NAN expression_element )
                    {
                    match(input,IS_NAN,FOLLOW_IS_NAN_in_expression_element10625); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10627);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 9 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1295:10: ^( IS_NOT_PRESENT expression_element )
                    {
                    match(input,IS_NOT_PRESENT,FOLLOW_IS_NOT_PRESENT_in_expression_element10640); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10642);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 10 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1296:10: ^( IS_PRESENT expression_element )
                    {
                    match(input,IS_PRESENT,FOLLOW_IS_PRESENT_in_expression_element10655); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10657);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 11 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1297:10: ^( IS_NOT_INFINITE expression_element )
                    {
                    match(input,IS_NOT_INFINITE,FOLLOW_IS_NOT_INFINITE_in_expression_element10670); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10672);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 12 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1298:10: ^( IS_INFINITE expression_element )
                    {
                    match(input,IS_INFINITE,FOLLOW_IS_INFINITE_in_expression_element10685); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10687);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 13 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1299:10: ^( IS_NOT_A_SET expression_element )
                    {
                    match(input,IS_NOT_A_SET,FOLLOW_IS_NOT_A_SET_in_expression_element10700); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10702);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 14 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1300:10: ^( IS_A_SET expression_element )
                    {
                    match(input,IS_A_SET,FOLLOW_IS_A_SET_in_expression_element10715); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10717);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 15 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1301:10: ^( IS_NOT_EMPTY expression_element )
                    {
                    match(input,IS_NOT_EMPTY,FOLLOW_IS_NOT_EMPTY_in_expression_element10730); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10732);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 16 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1302:10: ^( IS_EMPTY expression_element )
                    {
                    match(input,IS_EMPTY,FOLLOW_IS_EMPTY_in_expression_element10745); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10747);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 17 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1303:10: ^( IS_NOT_OF_TYPE expression_element ( type_spec )+ )
                    {
                    match(input,IS_NOT_OF_TYPE,FOLLOW_IS_NOT_OF_TYPE_in_expression_element10760); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10762);
                    expression_element();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1303:46: ( type_spec )+
                    int cnt370=0;
                    loop370:
                    do {
                        int alt370=2;
                        int LA370_0 = input.LA(1);

                        if ( (LA370_0==CUSTOM_TYPE||LA370_0==INTERVAL_DATATYPE||LA370_0==NATIVE_DATATYPE) ) {
                            alt370=1;
                        }


                        switch (alt370) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1303:46: type_spec
                    	    {
                    	    pushFollow(FOLLOW_type_spec_in_expression_element10764);
                    	    type_spec();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt370 >= 1 ) break loop370;
                                EarlyExitException eee =
                                    new EarlyExitException(370, input);
                                throw eee;
                        }
                        cnt370++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 18 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1304:10: ^( IS_OF_TYPE expression_element ( type_spec )+ )
                    {
                    match(input,IS_OF_TYPE,FOLLOW_IS_OF_TYPE_in_expression_element10778); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10780);
                    expression_element();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1304:42: ( type_spec )+
                    int cnt371=0;
                    loop371:
                    do {
                        int alt371=2;
                        int LA371_0 = input.LA(1);

                        if ( (LA371_0==CUSTOM_TYPE||LA371_0==INTERVAL_DATATYPE||LA371_0==NATIVE_DATATYPE) ) {
                            alt371=1;
                        }


                        switch (alt371) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1304:42: type_spec
                    	    {
                    	    pushFollow(FOLLOW_type_spec_in_expression_element10782);
                    	    type_spec();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt371 >= 1 ) break loop371;
                                EarlyExitException eee =
                                    new EarlyExitException(371, input);
                                throw eee;
                        }
                        cnt371++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 19 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1306:10: ^( ( MEMBER_VK | SUBMULTISET_VK ) expression_element expression_element )
                    {
                    if ( input.LA(1)==MEMBER_VK||input.LA(1)==SUBMULTISET_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10803);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element10805);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 20 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1308:10: ^( NOT_IN expression_element in_elements )
                    {
                    match(input,NOT_IN,FOLLOW_NOT_IN_in_expression_element10819); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10821);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_in_elements_in_expression_element10823);
                    in_elements();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 21 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1309:10: ^( SQL92_RESERVED_IN expression_element in_elements )
                    {
                    match(input,SQL92_RESERVED_IN,FOLLOW_SQL92_RESERVED_IN_in_expression_element10836); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10838);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_in_elements_in_expression_element10840);
                    in_elements();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 22 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1310:10: ^( NOT_BETWEEN expression_element expression_element expression_element )
                    {
                    match(input,NOT_BETWEEN,FOLLOW_NOT_BETWEEN_in_expression_element10853); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10855);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element10857);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element10859);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 23 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1311:10: ^( SQL92_RESERVED_BETWEEN expression_element expression_element expression_element )
                    {
                    match(input,SQL92_RESERVED_BETWEEN,FOLLOW_SQL92_RESERVED_BETWEEN_in_expression_element10872); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10874);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element10876);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element10878);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 24 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1312:10: ^( NOT_LIKE expression_element expression_element ( expression_element )? )
                    {
                    match(input,NOT_LIKE,FOLLOW_NOT_LIKE_in_expression_element10891); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10893);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element10895);
                    expression_element();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1312:59: ( expression_element )?
                    int alt372=2;
                    int LA372_0 = input.LA(1);

                    if ( (LA372_0==APPROXIMATE_NUM_LIT||LA372_0==ASTERISK||LA372_0==CHAR_STRING||LA372_0==CONCATENATION_OP||(LA372_0 >= EQUALS_OP && LA372_0 <= EXACT_NUM_LIT)||(LA372_0 >= GREATER_THAN_OP && LA372_0 <= GREATER_THAN_OR_EQUALS_OP)||(LA372_0 >= LESS_THAN_OP && LA372_0 <= MINUS_SIGN)||LA372_0==NOT_EQUAL_OP||LA372_0==PLUS_SIGN||LA372_0==SOLIDUS||LA372_0==SQL92_RESERVED_ALL||(LA372_0 >= SQL92_RESERVED_AND && LA372_0 <= SQL92_RESERVED_ANY)||LA372_0==SQL92_RESERVED_BETWEEN||LA372_0==SQL92_RESERVED_DEFAULT||LA372_0==SQL92_RESERVED_DISTINCT||(LA372_0 >= SQL92_RESERVED_EXISTS && LA372_0 <= SQL92_RESERVED_FALSE)||LA372_0==SQL92_RESERVED_IN||(LA372_0 >= SQL92_RESERVED_LIKE && LA372_0 <= SQL92_RESERVED_NULL)||LA372_0==SQL92_RESERVED_OR||LA372_0==SQL92_RESERVED_PRIOR||LA372_0==SQL92_RESERVED_TRUE||LA372_0==UNSIGNED_INTEGER||LA372_0==ANY_ELEMENT||LA372_0==CASCATED_ELEMENT||LA372_0==DATETIME_OP||LA372_0==DBTIMEZONE_VK||LA372_0==DOT_ASTERISK||LA372_0==HOSTED_VARIABLE||LA372_0==HOSTED_VARIABLE_ROUTINE_CALL||(LA372_0 >= IS_A_SET && LA372_0 <= IS_PRESENT)||LA372_0==KEEP_VK||(LA372_0 >= LIKE2_VK && LA372_0 <= LIKEC_VK)||LA372_0==MAXVALUE_VK||LA372_0==MEMBER_VK||LA372_0==MINVALUE_VK||LA372_0==MODEL_EXPRESSION||LA372_0==NEW_VK||LA372_0==NOT_BETWEEN||(LA372_0 >= NOT_IN && LA372_0 <= NOT_LIKE)||LA372_0==ROUTINE_CALL||LA372_0==SEARCHED_CASE||LA372_0==SESSIONTIMEZONE_VK||LA372_0==SIMPLE_CASE||LA372_0==SOME_VK||LA372_0==STANDARD_FUNCTION||LA372_0==SUBMULTISET_VK||LA372_0==SUBQUERY||LA372_0==UNARY_OPERATOR||LA372_0==VECTOR_EXPR) ) {
                        alt372=1;
                    }
                    switch (alt372) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1312:59: expression_element
                            {
                            pushFollow(FOLLOW_expression_element_in_expression_element10897);
                            expression_element();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 25 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1313:10: ^( ( SQL92_RESERVED_LIKE | LIKEC_VK | LIKE2_VK | LIKE4_VK ) expression_element expression_element ( expression_element )? )
                    {
                    if ( input.LA(1)==SQL92_RESERVED_LIKE||(input.LA(1) >= LIKE2_VK && input.LA(1) <= LIKEC_VK) ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10921);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element10923);
                    expression_element();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1313:99: ( expression_element )?
                    int alt373=2;
                    int LA373_0 = input.LA(1);

                    if ( (LA373_0==APPROXIMATE_NUM_LIT||LA373_0==ASTERISK||LA373_0==CHAR_STRING||LA373_0==CONCATENATION_OP||(LA373_0 >= EQUALS_OP && LA373_0 <= EXACT_NUM_LIT)||(LA373_0 >= GREATER_THAN_OP && LA373_0 <= GREATER_THAN_OR_EQUALS_OP)||(LA373_0 >= LESS_THAN_OP && LA373_0 <= MINUS_SIGN)||LA373_0==NOT_EQUAL_OP||LA373_0==PLUS_SIGN||LA373_0==SOLIDUS||LA373_0==SQL92_RESERVED_ALL||(LA373_0 >= SQL92_RESERVED_AND && LA373_0 <= SQL92_RESERVED_ANY)||LA373_0==SQL92_RESERVED_BETWEEN||LA373_0==SQL92_RESERVED_DEFAULT||LA373_0==SQL92_RESERVED_DISTINCT||(LA373_0 >= SQL92_RESERVED_EXISTS && LA373_0 <= SQL92_RESERVED_FALSE)||LA373_0==SQL92_RESERVED_IN||(LA373_0 >= SQL92_RESERVED_LIKE && LA373_0 <= SQL92_RESERVED_NULL)||LA373_0==SQL92_RESERVED_OR||LA373_0==SQL92_RESERVED_PRIOR||LA373_0==SQL92_RESERVED_TRUE||LA373_0==UNSIGNED_INTEGER||LA373_0==ANY_ELEMENT||LA373_0==CASCATED_ELEMENT||LA373_0==DATETIME_OP||LA373_0==DBTIMEZONE_VK||LA373_0==DOT_ASTERISK||LA373_0==HOSTED_VARIABLE||LA373_0==HOSTED_VARIABLE_ROUTINE_CALL||(LA373_0 >= IS_A_SET && LA373_0 <= IS_PRESENT)||LA373_0==KEEP_VK||(LA373_0 >= LIKE2_VK && LA373_0 <= LIKEC_VK)||LA373_0==MAXVALUE_VK||LA373_0==MEMBER_VK||LA373_0==MINVALUE_VK||LA373_0==MODEL_EXPRESSION||LA373_0==NEW_VK||LA373_0==NOT_BETWEEN||(LA373_0 >= NOT_IN && LA373_0 <= NOT_LIKE)||LA373_0==ROUTINE_CALL||LA373_0==SEARCHED_CASE||LA373_0==SESSIONTIMEZONE_VK||LA373_0==SIMPLE_CASE||LA373_0==SOME_VK||LA373_0==STANDARD_FUNCTION||LA373_0==SUBMULTISET_VK||LA373_0==SUBQUERY||LA373_0==UNARY_OPERATOR||LA373_0==VECTOR_EXPR) ) {
                        alt373=1;
                    }
                    switch (alt373) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1313:99: expression_element
                            {
                            pushFollow(FOLLOW_expression_element_in_expression_element10925);
                            expression_element();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 26 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1315:10: ^( CONCATENATION_OP expression_element expression_element )
                    {
                    match(input,CONCATENATION_OP,FOLLOW_CONCATENATION_OP_in_expression_element10940); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10942);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element10944);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 27 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1316:10: ^( PLUS_SIGN expression_element expression_element )
                    {
                    match(input,PLUS_SIGN,FOLLOW_PLUS_SIGN_in_expression_element10957); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10959);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element10961);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 28 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1317:10: ^( MINUS_SIGN expression_element expression_element )
                    {
                    match(input,MINUS_SIGN,FOLLOW_MINUS_SIGN_in_expression_element10974); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10976);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element10978);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 29 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1318:10: ^( ASTERISK expression_element expression_element )
                    {
                    match(input,ASTERISK,FOLLOW_ASTERISK_in_expression_element10991); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element10993);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element10995);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 30 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1319:10: ^( SOLIDUS expression_element expression_element )
                    {
                    match(input,SOLIDUS,FOLLOW_SOLIDUS_in_expression_element11008); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element11010);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_expression_element_in_expression_element11012);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 31 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1321:10: ^( UNARY_OPERATOR expression_element )
                    {
                    match(input,UNARY_OPERATOR,FOLLOW_UNARY_OPERATOR_in_expression_element11026); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element11028);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 32 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1322:10: ^( SQL92_RESERVED_PRIOR expression_element )
                    {
                    match(input,SQL92_RESERVED_PRIOR,FOLLOW_SQL92_RESERVED_PRIOR_in_expression_element11041); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element11043);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 33 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1323:10: ^( NEW_VK expression )
                    {
                    match(input,NEW_VK,FOLLOW_NEW_VK_in_expression_element11056); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_expression_element11058);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 34 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1324:10: ^( SQL92_RESERVED_DISTINCT expression_element )
                    {
                    match(input,SQL92_RESERVED_DISTINCT,FOLLOW_SQL92_RESERVED_DISTINCT_in_expression_element11071); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element11073);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 35 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1325:10: ^( STANDARD_FUNCTION standard_function )
                    {
                    match(input,STANDARD_FUNCTION,FOLLOW_STANDARD_FUNCTION_in_expression_element11086); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_standard_function_in_expression_element11088);
                    standard_function();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 36 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1326:10: ^( ( SOME_VK | SQL92_RESERVED_EXISTS | SQL92_RESERVED_ALL | SQL92_RESERVED_ANY ) expression_element )
                    {
                    if ( input.LA(1)==SQL92_RESERVED_ALL||input.LA(1)==SQL92_RESERVED_ANY||input.LA(1)==SQL92_RESERVED_EXISTS||input.LA(1)==SOME_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element11111);
                    expression_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 37 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1327:10: ^( VECTOR_EXPR ( expression_element )+ )
                    {
                    match(input,VECTOR_EXPR,FOLLOW_VECTOR_EXPR_in_expression_element11124); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1327:24: ( expression_element )+
                    int cnt374=0;
                    loop374:
                    do {
                        int alt374=2;
                        int LA374_0 = input.LA(1);

                        if ( (LA374_0==APPROXIMATE_NUM_LIT||LA374_0==ASTERISK||LA374_0==CHAR_STRING||LA374_0==CONCATENATION_OP||(LA374_0 >= EQUALS_OP && LA374_0 <= EXACT_NUM_LIT)||(LA374_0 >= GREATER_THAN_OP && LA374_0 <= GREATER_THAN_OR_EQUALS_OP)||(LA374_0 >= LESS_THAN_OP && LA374_0 <= MINUS_SIGN)||LA374_0==NOT_EQUAL_OP||LA374_0==PLUS_SIGN||LA374_0==SOLIDUS||LA374_0==SQL92_RESERVED_ALL||(LA374_0 >= SQL92_RESERVED_AND && LA374_0 <= SQL92_RESERVED_ANY)||LA374_0==SQL92_RESERVED_BETWEEN||LA374_0==SQL92_RESERVED_DEFAULT||LA374_0==SQL92_RESERVED_DISTINCT||(LA374_0 >= SQL92_RESERVED_EXISTS && LA374_0 <= SQL92_RESERVED_FALSE)||LA374_0==SQL92_RESERVED_IN||(LA374_0 >= SQL92_RESERVED_LIKE && LA374_0 <= SQL92_RESERVED_NULL)||LA374_0==SQL92_RESERVED_OR||LA374_0==SQL92_RESERVED_PRIOR||LA374_0==SQL92_RESERVED_TRUE||LA374_0==UNSIGNED_INTEGER||LA374_0==ANY_ELEMENT||LA374_0==CASCATED_ELEMENT||LA374_0==DATETIME_OP||LA374_0==DBTIMEZONE_VK||LA374_0==DOT_ASTERISK||LA374_0==HOSTED_VARIABLE||LA374_0==HOSTED_VARIABLE_ROUTINE_CALL||(LA374_0 >= IS_A_SET && LA374_0 <= IS_PRESENT)||LA374_0==KEEP_VK||(LA374_0 >= LIKE2_VK && LA374_0 <= LIKEC_VK)||LA374_0==MAXVALUE_VK||LA374_0==MEMBER_VK||LA374_0==MINVALUE_VK||LA374_0==MODEL_EXPRESSION||LA374_0==NEW_VK||LA374_0==NOT_BETWEEN||(LA374_0 >= NOT_IN && LA374_0 <= NOT_LIKE)||LA374_0==ROUTINE_CALL||LA374_0==SEARCHED_CASE||LA374_0==SESSIONTIMEZONE_VK||LA374_0==SIMPLE_CASE||LA374_0==SOME_VK||LA374_0==STANDARD_FUNCTION||LA374_0==SUBMULTISET_VK||LA374_0==SUBQUERY||LA374_0==UNARY_OPERATOR||LA374_0==VECTOR_EXPR) ) {
                            alt374=1;
                        }


                        switch (alt374) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1327:24: expression_element
                    	    {
                    	    pushFollow(FOLLOW_expression_element_in_expression_element11126);
                    	    expression_element();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt374 >= 1 ) break loop374;
                                EarlyExitException eee =
                                    new EarlyExitException(374, input);
                                throw eee;
                        }
                        cnt374++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 38 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1329:10: ^( DATETIME_OP expression_element datetime_element )
                    {
                    match(input,DATETIME_OP,FOLLOW_DATETIME_OP_in_expression_element11141); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element11143);
                    expression_element();

                    state._fsp--;


                    pushFollow(FOLLOW_datetime_element_in_expression_element11145);
                    datetime_element();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 39 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1330:10: model_expression
                    {
                    pushFollow(FOLLOW_model_expression_in_expression_element11157);
                    model_expression();

                    state._fsp--;


                    }
                    break;
                case 40 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1331:10: ^( KEEP_VK expression_element DENSE_RANK_VK ( FIRST_VK | LAST_VK ) order_by_clause ( over_clause )? )
                    {
                    match(input,KEEP_VK,FOLLOW_KEEP_VK_in_expression_element11169); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_expression_element11171);
                    expression_element();

                    state._fsp--;


                    match(input,DENSE_RANK_VK,FOLLOW_DENSE_RANK_VK_in_expression_element11173); 

                    if ( input.LA(1)==FIRST_VK||input.LA(1)==LAST_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    pushFollow(FOLLOW_order_by_clause_in_expression_element11181);
                    order_by_clause();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1331:88: ( over_clause )?
                    int alt375=2;
                    int LA375_0 = input.LA(1);

                    if ( (LA375_0==OVER_VK) ) {
                        alt375=1;
                    }
                    switch (alt375) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1331:88: over_clause
                            {
                            pushFollow(FOLLOW_over_clause_in_expression_element11183);
                            over_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 41 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1333:10: ^( DOT_ASTERISK tableview_name )
                    {
                    match(input,DOT_ASTERISK,FOLLOW_DOT_ASTERISK_in_expression_element11198); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_tableview_name_in_expression_element11200);
                    tableview_name();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 42 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1335:10: case_statement
                    {
                    pushFollow(FOLLOW_case_statement_in_expression_element11213);
                    case_statement();

                    state._fsp--;


                    }
                    break;
                case 43 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1336:10: constant
                    {
                    pushFollow(FOLLOW_constant_in_expression_element11224);
                    constant();

                    state._fsp--;


                    }
                    break;
                case 44 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1337:10: general_element
                    {
                    pushFollow(FOLLOW_general_element_in_expression_element11235);
                    general_element();

                    state._fsp--;


                    }
                    break;
                case 45 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1338:10: subquery
                    {
                    pushFollow(FOLLOW_subquery_in_expression_element11246);
                    subquery();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "expression_element"



    // $ANTLR start "in_elements"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1341:1: in_elements : ( subquery | expression_list );
    public final void in_elements() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1342:5: ( subquery | expression_list )
            int alt377=2;
            int LA377_0 = input.LA(1);

            if ( (LA377_0==SUBQUERY) ) {
                alt377=1;
            }
            else if ( (LA377_0==EXPR_LIST) ) {
                alt377=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 377, 0, input);

                throw nvae;

            }
            switch (alt377) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1342:10: subquery
                    {
                    pushFollow(FOLLOW_subquery_in_in_elements11266);
                    subquery();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1343:10: expression_list
                    {
                    pushFollow(FOLLOW_expression_list_in_in_elements11277);
                    expression_list();

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "in_elements"



    // $ANTLR start "datetime_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1346:1: datetime_element : ( ^( AT_VK expression_element ( LOCAL_VK | TIME_VK expression ) ) | ^( DAY_VK SECOND_VK ( expression )* ) | ^( YEAR_VK MONTH_VK expression ) );
    public final void datetime_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1347:5: ( ^( AT_VK expression_element ( LOCAL_VK | TIME_VK expression ) ) | ^( DAY_VK SECOND_VK ( expression )* ) | ^( YEAR_VK MONTH_VK expression ) )
            int alt380=3;
            switch ( input.LA(1) ) {
            case AT_VK:
                {
                alt380=1;
                }
                break;
            case DAY_VK:
                {
                alt380=2;
                }
                break;
            case YEAR_VK:
                {
                alt380=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 380, 0, input);

                throw nvae;

            }

            switch (alt380) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1347:10: ^( AT_VK expression_element ( LOCAL_VK | TIME_VK expression ) )
                    {
                    match(input,AT_VK,FOLLOW_AT_VK_in_datetime_element11298); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_element_in_datetime_element11300);
                    expression_element();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1347:37: ( LOCAL_VK | TIME_VK expression )
                    int alt378=2;
                    int LA378_0 = input.LA(1);

                    if ( (LA378_0==LOCAL_VK) ) {
                        alt378=1;
                    }
                    else if ( (LA378_0==TIME_VK) ) {
                        alt378=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 378, 0, input);

                        throw nvae;

                    }
                    switch (alt378) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1347:38: LOCAL_VK
                            {
                            match(input,LOCAL_VK,FOLLOW_LOCAL_VK_in_datetime_element11303); 

                            }
                            break;
                        case 2 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1347:47: TIME_VK expression
                            {
                            match(input,TIME_VK,FOLLOW_TIME_VK_in_datetime_element11305); 

                            pushFollow(FOLLOW_expression_in_datetime_element11307);
                            expression();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1348:10: ^( DAY_VK SECOND_VK ( expression )* )
                    {
                    match(input,DAY_VK,FOLLOW_DAY_VK_in_datetime_element11321); 

                    match(input, Token.DOWN, null); 
                    match(input,SECOND_VK,FOLLOW_SECOND_VK_in_datetime_element11323); 

                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1348:29: ( expression )*
                    loop379:
                    do {
                        int alt379=2;
                        int LA379_0 = input.LA(1);

                        if ( (LA379_0==EXPR||LA379_0==LOGIC_EXPR) ) {
                            alt379=1;
                        }


                        switch (alt379) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1348:29: expression
                    	    {
                    	    pushFollow(FOLLOW_expression_in_datetime_element11325);
                    	    expression();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop379;
                        }
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1349:10: ^( YEAR_VK MONTH_VK expression )
                    {
                    match(input,YEAR_VK,FOLLOW_YEAR_VK_in_datetime_element11339); 

                    match(input, Token.DOWN, null); 
                    match(input,MONTH_VK,FOLLOW_MONTH_VK_in_datetime_element11341); 

                    pushFollow(FOLLOW_expression_in_datetime_element11343);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "datetime_element"



    // $ANTLR start "model_expression"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1352:1: model_expression : ^( MODEL_EXPRESSION expression_element ( model_expression_element )+ ) ;
    public final void model_expression() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1353:5: ( ^( MODEL_EXPRESSION expression_element ( model_expression_element )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1353:10: ^( MODEL_EXPRESSION expression_element ( model_expression_element )+ )
            {
            match(input,MODEL_EXPRESSION,FOLLOW_MODEL_EXPRESSION_in_model_expression11365); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_element_in_model_expression11367);
            expression_element();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1353:48: ( model_expression_element )+
            int cnt381=0;
            loop381:
            do {
                int alt381=2;
                int LA381_0 = input.LA(1);

                if ( (LA381_0==SQL92_RESERVED_ANY||LA381_0==EXPR||(LA381_0 >= FOR_MULTI_COLUMN && LA381_0 <= FOR_SINGLE_COLUMN)||LA381_0==LOGIC_EXPR) ) {
                    alt381=1;
                }


                switch (alt381) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1353:48: model_expression_element
            	    {
            	    pushFollow(FOLLOW_model_expression_element_in_model_expression11369);
            	    model_expression_element();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt381 >= 1 ) break loop381;
                        EarlyExitException eee =
                            new EarlyExitException(381, input);
                        throw eee;
                }
                cnt381++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "model_expression"



    // $ANTLR start "model_expression_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1356:1: model_expression_element : ( SQL92_RESERVED_ANY | expression | ^( FOR_SINGLE_COLUMN column_name for_single_column_element ( for_like_part )? ) | ^( FOR_MULTI_COLUMN ( column_name )+ ^( SQL92_RESERVED_IN ( subquery | ( expression_list )+ ) ) ) );
    public final void model_expression_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1357:5: ( SQL92_RESERVED_ANY | expression | ^( FOR_SINGLE_COLUMN column_name for_single_column_element ( for_like_part )? ) | ^( FOR_MULTI_COLUMN ( column_name )+ ^( SQL92_RESERVED_IN ( subquery | ( expression_list )+ ) ) ) )
            int alt386=4;
            switch ( input.LA(1) ) {
            case SQL92_RESERVED_ANY:
                {
                alt386=1;
                }
                break;
            case EXPR:
            case LOGIC_EXPR:
                {
                alt386=2;
                }
                break;
            case FOR_SINGLE_COLUMN:
                {
                alt386=3;
                }
                break;
            case FOR_MULTI_COLUMN:
                {
                alt386=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 386, 0, input);

                throw nvae;

            }

            switch (alt386) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1357:10: SQL92_RESERVED_ANY
                    {
                    match(input,SQL92_RESERVED_ANY,FOLLOW_SQL92_RESERVED_ANY_in_model_expression_element11391); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1358:10: expression
                    {
                    pushFollow(FOLLOW_expression_in_model_expression_element11402);
                    expression();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1359:10: ^( FOR_SINGLE_COLUMN column_name for_single_column_element ( for_like_part )? )
                    {
                    match(input,FOR_SINGLE_COLUMN,FOLLOW_FOR_SINGLE_COLUMN_in_model_expression_element11414); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_column_name_in_model_expression_element11416);
                    column_name();

                    state._fsp--;


                    pushFollow(FOLLOW_for_single_column_element_in_model_expression_element11418);
                    for_single_column_element();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1359:68: ( for_like_part )?
                    int alt382=2;
                    int LA382_0 = input.LA(1);

                    if ( (LA382_0==SQL92_RESERVED_LIKE) ) {
                        alt382=1;
                    }
                    switch (alt382) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1359:68: for_like_part
                            {
                            pushFollow(FOLLOW_for_like_part_in_model_expression_element11420);
                            for_like_part();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1360:10: ^( FOR_MULTI_COLUMN ( column_name )+ ^( SQL92_RESERVED_IN ( subquery | ( expression_list )+ ) ) )
                    {
                    match(input,FOR_MULTI_COLUMN,FOLLOW_FOR_MULTI_COLUMN_in_model_expression_element11434); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1360:29: ( column_name )+
                    int cnt383=0;
                    loop383:
                    do {
                        int alt383=2;
                        int LA383_0 = input.LA(1);

                        if ( (LA383_0==COLUMN_NAME) ) {
                            alt383=1;
                        }


                        switch (alt383) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1360:29: column_name
                    	    {
                    	    pushFollow(FOLLOW_column_name_in_model_expression_element11436);
                    	    column_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt383 >= 1 ) break loop383;
                                EarlyExitException eee =
                                    new EarlyExitException(383, input);
                                throw eee;
                        }
                        cnt383++;
                    } while (true);


                    match(input,SQL92_RESERVED_IN,FOLLOW_SQL92_RESERVED_IN_in_model_expression_element11440); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1360:62: ( subquery | ( expression_list )+ )
                    int alt385=2;
                    int LA385_0 = input.LA(1);

                    if ( (LA385_0==SUBQUERY) ) {
                        alt385=1;
                    }
                    else if ( (LA385_0==EXPR_LIST) ) {
                        alt385=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 385, 0, input);

                        throw nvae;

                    }
                    switch (alt385) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1360:63: subquery
                            {
                            pushFollow(FOLLOW_subquery_in_model_expression_element11443);
                            subquery();

                            state._fsp--;


                            }
                            break;
                        case 2 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1360:72: ( expression_list )+
                            {
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1360:72: ( expression_list )+
                            int cnt384=0;
                            loop384:
                            do {
                                int alt384=2;
                                int LA384_0 = input.LA(1);

                                if ( (LA384_0==EXPR_LIST) ) {
                                    alt384=1;
                                }


                                switch (alt384) {
                            	case 1 :
                            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1360:72: expression_list
                            	    {
                            	    pushFollow(FOLLOW_expression_list_in_model_expression_element11445);
                            	    expression_list();

                            	    state._fsp--;


                            	    }
                            	    break;

                            	default :
                            	    if ( cnt384 >= 1 ) break loop384;
                                        EarlyExitException eee =
                                            new EarlyExitException(384, input);
                                        throw eee;
                                }
                                cnt384++;
                            } while (true);


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "model_expression_element"



    // $ANTLR start "for_single_column_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1363:1: for_single_column_element : ( ^( SQL92_RESERVED_IN expression_list ) | ^( SQL92_RESERVED_FROM expression ) | ^( SQL92_RESERVED_TO expression ) | ^( ( INCREMENT_VK | DECREMENT_VK ) expression ) );
    public final void for_single_column_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1364:5: ( ^( SQL92_RESERVED_IN expression_list ) | ^( SQL92_RESERVED_FROM expression ) | ^( SQL92_RESERVED_TO expression ) | ^( ( INCREMENT_VK | DECREMENT_VK ) expression ) )
            int alt387=4;
            switch ( input.LA(1) ) {
            case SQL92_RESERVED_IN:
                {
                alt387=1;
                }
                break;
            case SQL92_RESERVED_FROM:
                {
                alt387=2;
                }
                break;
            case SQL92_RESERVED_TO:
                {
                alt387=3;
                }
                break;
            case DECREMENT_VK:
            case INCREMENT_VK:
                {
                alt387=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 387, 0, input);

                throw nvae;

            }

            switch (alt387) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1364:10: ^( SQL92_RESERVED_IN expression_list )
                    {
                    match(input,SQL92_RESERVED_IN,FOLLOW_SQL92_RESERVED_IN_in_for_single_column_element11470); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_list_in_for_single_column_element11472);
                    expression_list();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1365:10: ^( SQL92_RESERVED_FROM expression )
                    {
                    match(input,SQL92_RESERVED_FROM,FOLLOW_SQL92_RESERVED_FROM_in_for_single_column_element11485); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_for_single_column_element11487);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1366:10: ^( SQL92_RESERVED_TO expression )
                    {
                    match(input,SQL92_RESERVED_TO,FOLLOW_SQL92_RESERVED_TO_in_for_single_column_element11501); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_for_single_column_element11503);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1367:10: ^( ( INCREMENT_VK | DECREMENT_VK ) expression )
                    {
                    if ( input.LA(1)==DECREMENT_VK||input.LA(1)==INCREMENT_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_for_single_column_element11523);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "for_single_column_element"



    // $ANTLR start "for_like_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1370:1: for_like_part : ^( SQL92_RESERVED_LIKE expression ) ;
    public final void for_like_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1371:5: ( ^( SQL92_RESERVED_LIKE expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1371:10: ^( SQL92_RESERVED_LIKE expression )
            {
            match(input,SQL92_RESERVED_LIKE,FOLLOW_SQL92_RESERVED_LIKE_in_for_like_part11546); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_for_like_part11548);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "for_like_part"



    // $ANTLR start "case_statement"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1374:1: case_statement : ( ^( SIMPLE_CASE ( label_name )* expression ( case_when_part )+ ( case_else_part )? ) | ^( SEARCHED_CASE ( label_name )* ( case_when_part )+ ( case_else_part )? ) );
    public final void case_statement() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1375:5: ( ^( SIMPLE_CASE ( label_name )* expression ( case_when_part )+ ( case_else_part )? ) | ^( SEARCHED_CASE ( label_name )* ( case_when_part )+ ( case_else_part )? ) )
            int alt394=2;
            int LA394_0 = input.LA(1);

            if ( (LA394_0==SIMPLE_CASE) ) {
                alt394=1;
            }
            else if ( (LA394_0==SEARCHED_CASE) ) {
                alt394=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 394, 0, input);

                throw nvae;

            }
            switch (alt394) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1375:10: ^( SIMPLE_CASE ( label_name )* expression ( case_when_part )+ ( case_else_part )? )
                    {
                    match(input,SIMPLE_CASE,FOLLOW_SIMPLE_CASE_in_case_statement11570); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1375:24: ( label_name )*
                    loop388:
                    do {
                        int alt388=2;
                        int LA388_0 = input.LA(1);

                        if ( (LA388_0==LABEL_NAME) ) {
                            alt388=1;
                        }


                        switch (alt388) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1375:24: label_name
                    	    {
                    	    pushFollow(FOLLOW_label_name_in_case_statement11572);
                    	    label_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop388;
                        }
                    } while (true);


                    pushFollow(FOLLOW_expression_in_case_statement11575);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1375:47: ( case_when_part )+
                    int cnt389=0;
                    loop389:
                    do {
                        int alt389=2;
                        int LA389_0 = input.LA(1);

                        if ( (LA389_0==SQL92_RESERVED_WHEN) ) {
                            alt389=1;
                        }


                        switch (alt389) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1375:47: case_when_part
                    	    {
                    	    pushFollow(FOLLOW_case_when_part_in_case_statement11577);
                    	    case_when_part();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt389 >= 1 ) break loop389;
                                EarlyExitException eee =
                                    new EarlyExitException(389, input);
                                throw eee;
                        }
                        cnt389++;
                    } while (true);


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1375:63: ( case_else_part )?
                    int alt390=2;
                    int LA390_0 = input.LA(1);

                    if ( (LA390_0==SQL92_RESERVED_ELSE) ) {
                        alt390=1;
                    }
                    switch (alt390) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1375:63: case_else_part
                            {
                            pushFollow(FOLLOW_case_else_part_in_case_statement11580);
                            case_else_part();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1376:10: ^( SEARCHED_CASE ( label_name )* ( case_when_part )+ ( case_else_part )? )
                    {
                    match(input,SEARCHED_CASE,FOLLOW_SEARCHED_CASE_in_case_statement11596); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1376:26: ( label_name )*
                    loop391:
                    do {
                        int alt391=2;
                        int LA391_0 = input.LA(1);

                        if ( (LA391_0==LABEL_NAME) ) {
                            alt391=1;
                        }


                        switch (alt391) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1376:26: label_name
                    	    {
                    	    pushFollow(FOLLOW_label_name_in_case_statement11598);
                    	    label_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop391;
                        }
                    } while (true);


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1376:38: ( case_when_part )+
                    int cnt392=0;
                    loop392:
                    do {
                        int alt392=2;
                        int LA392_0 = input.LA(1);

                        if ( (LA392_0==SQL92_RESERVED_WHEN) ) {
                            alt392=1;
                        }


                        switch (alt392) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1376:38: case_when_part
                    	    {
                    	    pushFollow(FOLLOW_case_when_part_in_case_statement11601);
                    	    case_when_part();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt392 >= 1 ) break loop392;
                                EarlyExitException eee =
                                    new EarlyExitException(392, input);
                                throw eee;
                        }
                        cnt392++;
                    } while (true);


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1376:54: ( case_else_part )?
                    int alt393=2;
                    int LA393_0 = input.LA(1);

                    if ( (LA393_0==SQL92_RESERVED_ELSE) ) {
                        alt393=1;
                    }
                    switch (alt393) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1376:54: case_else_part
                            {
                            pushFollow(FOLLOW_case_else_part_in_case_statement11604);
                            case_else_part();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "case_statement"



    // $ANTLR start "case_when_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1381:1: case_when_part : ^( SQL92_RESERVED_WHEN expression ( seq_of_statements | expression ) ) ;
    public final void case_when_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1382:5: ( ^( SQL92_RESERVED_WHEN expression ( seq_of_statements | expression ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1382:10: ^( SQL92_RESERVED_WHEN expression ( seq_of_statements | expression ) )
            {
            match(input,SQL92_RESERVED_WHEN,FOLLOW_SQL92_RESERVED_WHEN_in_case_when_part11630); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_case_when_part11632);
            expression();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1382:43: ( seq_of_statements | expression )
            int alt395=2;
            int LA395_0 = input.LA(1);

            if ( (LA395_0==STATEMENTS) ) {
                alt395=1;
            }
            else if ( (LA395_0==EXPR||LA395_0==LOGIC_EXPR) ) {
                alt395=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 395, 0, input);

                throw nvae;

            }
            switch (alt395) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1382:44: seq_of_statements
                    {
                    pushFollow(FOLLOW_seq_of_statements_in_case_when_part11635);
                    seq_of_statements();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1382:62: expression
                    {
                    pushFollow(FOLLOW_expression_in_case_when_part11637);
                    expression();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "case_when_part"



    // $ANTLR start "case_else_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1385:1: case_else_part : ^( SQL92_RESERVED_ELSE ( seq_of_statements | expression ) ) ;
    public final void case_else_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1386:5: ( ^( SQL92_RESERVED_ELSE ( seq_of_statements | expression ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1386:10: ^( SQL92_RESERVED_ELSE ( seq_of_statements | expression ) )
            {
            match(input,SQL92_RESERVED_ELSE,FOLLOW_SQL92_RESERVED_ELSE_in_case_else_part11660); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1386:32: ( seq_of_statements | expression )
            int alt396=2;
            int LA396_0 = input.LA(1);

            if ( (LA396_0==STATEMENTS) ) {
                alt396=1;
            }
            else if ( (LA396_0==EXPR||LA396_0==LOGIC_EXPR) ) {
                alt396=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 396, 0, input);

                throw nvae;

            }
            switch (alt396) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1386:33: seq_of_statements
                    {
                    pushFollow(FOLLOW_seq_of_statements_in_case_else_part11663);
                    seq_of_statements();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1386:51: expression
                    {
                    pushFollow(FOLLOW_expression_in_case_else_part11665);
                    expression();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "case_else_part"



    // $ANTLR start "standard_function"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1390:1: standard_function : ( ^( FUNCTION_ENABLING_OVER function_argument ( over_clause )? ) | ^( FUNCTION_ENABLING_USING function_argument ( using_clause )? ) | ^( COUNT_VK ( ASTERISK | expression ) ( over_clause )? ) | ^( ( CAST_VK | XMLCAST_VK ) ( subquery | expression ) type_spec ) | ^( CHR_VK expression NCHAR_CS_VK ) | ^( COLLECT_VK ( SQL92_RESERVED_DISTINCT | SQL92_RESERVED_UNIQUE )? column_name ( collect_order_by_part )? ) | ^( FUNCTION_ENABLING_WITHIN_OR_OVER function_argument ( within_clause | over_clause )+ ) | ^( DECOMPOSE_VK expression ( CANONICAL_VK | COMPATIBILITY_VK )? ) | ^( EXTRACT_VK REGULAR_ID expression ) | ^( ( FIRST_VALUE_VK | LAST_VALUE_VK ) expression ( NULLS_VK )? over_clause ) | ^( PREDICTION_FUNCTION ( expression )+ ( cost_matrix_clause )? ( using_clause )? ) | ^( TRANSLATE_VK expression ( CHAR_CS_VK | NCHAR_CS_VK )? ( expression )* ) | ^( TREAT_VK expression ( REF_VK )? type_spec ) | ^( TRIM_VK ( LEADING_VK | TRAILING_VK | BOTH_VK )? expression ( expression )? ) | ^( XMLAGG_VK expression ( order_by_clause )? ) | ^( ( XMLCOLATTVAL_VK | XMLFOREST_VK ) ( xml_multiuse_expression_element )+ ) | ^( XMLEXISTS_VK expression ( xml_passing_clause )? ) | ^( XMLPARSE_VK ( DOCUMENT_VK | CONTENT_VK ) expression ( WELLFORMED_VK )? ) | ^( XMLQUERY_VK expression ( xml_passing_clause )? ( SQL92_RESERVED_NULL )? ) | ^( XMLROOT_VK expression xml_param_version_part ( xmlroot_param_standalone_part )? ) | ^( XMLTABLE_VK ( xml_namespaces_clause )? expression ( xml_passing_clause )? ( xml_table_column )* ) | ^( XMLELEMENT_VK ( ENTITYESCAPING_VK | NOENTITYESCAPING_VK )? ( NAME_VK | EVALNAME_VK )? expression ( xml_attributes_clause )? ( expression ( alias )? )* ) | ^( XMLPI_VK ( NAME_VK ( char_set_name )? ID | EVALNAME_VK expression ) ( expression )? ) | ^( XMLSERIALIZE_VK ( DOCUMENT_VK | CONTENT_VK ) expression ( type_spec )? ( xmlserialize_param_enconding_part )? ( xml_param_version_part )? ( xmlserialize_param_ident_part )? ( ( HIDE_VK | SHOW_VK ) DEFAULTS_VK )? ) );
    public final void standard_function() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1391:5: ( ^( FUNCTION_ENABLING_OVER function_argument ( over_clause )? ) | ^( FUNCTION_ENABLING_USING function_argument ( using_clause )? ) | ^( COUNT_VK ( ASTERISK | expression ) ( over_clause )? ) | ^( ( CAST_VK | XMLCAST_VK ) ( subquery | expression ) type_spec ) | ^( CHR_VK expression NCHAR_CS_VK ) | ^( COLLECT_VK ( SQL92_RESERVED_DISTINCT | SQL92_RESERVED_UNIQUE )? column_name ( collect_order_by_part )? ) | ^( FUNCTION_ENABLING_WITHIN_OR_OVER function_argument ( within_clause | over_clause )+ ) | ^( DECOMPOSE_VK expression ( CANONICAL_VK | COMPATIBILITY_VK )? ) | ^( EXTRACT_VK REGULAR_ID expression ) | ^( ( FIRST_VALUE_VK | LAST_VALUE_VK ) expression ( NULLS_VK )? over_clause ) | ^( PREDICTION_FUNCTION ( expression )+ ( cost_matrix_clause )? ( using_clause )? ) | ^( TRANSLATE_VK expression ( CHAR_CS_VK | NCHAR_CS_VK )? ( expression )* ) | ^( TREAT_VK expression ( REF_VK )? type_spec ) | ^( TRIM_VK ( LEADING_VK | TRAILING_VK | BOTH_VK )? expression ( expression )? ) | ^( XMLAGG_VK expression ( order_by_clause )? ) | ^( ( XMLCOLATTVAL_VK | XMLFOREST_VK ) ( xml_multiuse_expression_element )+ ) | ^( XMLEXISTS_VK expression ( xml_passing_clause )? ) | ^( XMLPARSE_VK ( DOCUMENT_VK | CONTENT_VK ) expression ( WELLFORMED_VK )? ) | ^( XMLQUERY_VK expression ( xml_passing_clause )? ( SQL92_RESERVED_NULL )? ) | ^( XMLROOT_VK expression xml_param_version_part ( xmlroot_param_standalone_part )? ) | ^( XMLTABLE_VK ( xml_namespaces_clause )? expression ( xml_passing_clause )? ( xml_table_column )* ) | ^( XMLELEMENT_VK ( ENTITYESCAPING_VK | NOENTITYESCAPING_VK )? ( NAME_VK | EVALNAME_VK )? expression ( xml_attributes_clause )? ( expression ( alias )? )* ) | ^( XMLPI_VK ( NAME_VK ( char_set_name )? ID | EVALNAME_VK expression ) ( expression )? ) | ^( XMLSERIALIZE_VK ( DOCUMENT_VK | CONTENT_VK ) expression ( type_spec )? ( xmlserialize_param_enconding_part )? ( xml_param_version_part )? ( xmlserialize_param_ident_part )? ( ( HIDE_VK | SHOW_VK ) DEFAULTS_VK )? ) )
            int alt438=24;
            switch ( input.LA(1) ) {
            case FUNCTION_ENABLING_OVER:
                {
                alt438=1;
                }
                break;
            case FUNCTION_ENABLING_USING:
                {
                alt438=2;
                }
                break;
            case COUNT_VK:
                {
                alt438=3;
                }
                break;
            case CAST_VK:
            case XMLCAST_VK:
                {
                alt438=4;
                }
                break;
            case CHR_VK:
                {
                alt438=5;
                }
                break;
            case COLLECT_VK:
                {
                alt438=6;
                }
                break;
            case FUNCTION_ENABLING_WITHIN_OR_OVER:
                {
                alt438=7;
                }
                break;
            case DECOMPOSE_VK:
                {
                alt438=8;
                }
                break;
            case EXTRACT_VK:
                {
                alt438=9;
                }
                break;
            case FIRST_VALUE_VK:
            case LAST_VALUE_VK:
                {
                alt438=10;
                }
                break;
            case PREDICTION_FUNCTION:
                {
                alt438=11;
                }
                break;
            case TRANSLATE_VK:
                {
                alt438=12;
                }
                break;
            case TREAT_VK:
                {
                alt438=13;
                }
                break;
            case TRIM_VK:
                {
                alt438=14;
                }
                break;
            case XMLAGG_VK:
                {
                alt438=15;
                }
                break;
            case XMLCOLATTVAL_VK:
            case XMLFOREST_VK:
                {
                alt438=16;
                }
                break;
            case XMLEXISTS_VK:
                {
                alt438=17;
                }
                break;
            case XMLPARSE_VK:
                {
                alt438=18;
                }
                break;
            case XMLQUERY_VK:
                {
                alt438=19;
                }
                break;
            case XMLROOT_VK:
                {
                alt438=20;
                }
                break;
            case XMLTABLE_VK:
                {
                alt438=21;
                }
                break;
            case XMLELEMENT_VK:
                {
                alt438=22;
                }
                break;
            case XMLPI_VK:
                {
                alt438=23;
                }
                break;
            case XMLSERIALIZE_VK:
                {
                alt438=24;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 438, 0, input);

                throw nvae;

            }

            switch (alt438) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1391:10: ^( FUNCTION_ENABLING_OVER function_argument ( over_clause )? )
                    {
                    match(input,FUNCTION_ENABLING_OVER,FOLLOW_FUNCTION_ENABLING_OVER_in_standard_function11689); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_function_argument_in_standard_function11691);
                    function_argument();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1391:53: ( over_clause )?
                    int alt397=2;
                    int LA397_0 = input.LA(1);

                    if ( (LA397_0==OVER_VK) ) {
                        alt397=1;
                    }
                    switch (alt397) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1391:53: over_clause
                            {
                            pushFollow(FOLLOW_over_clause_in_standard_function11693);
                            over_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1392:10: ^( FUNCTION_ENABLING_USING function_argument ( using_clause )? )
                    {
                    match(input,FUNCTION_ENABLING_USING,FOLLOW_FUNCTION_ENABLING_USING_in_standard_function11707); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_function_argument_in_standard_function11709);
                    function_argument();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1392:54: ( using_clause )?
                    int alt398=2;
                    int LA398_0 = input.LA(1);

                    if ( (LA398_0==PLSQL_NON_RESERVED_USING) ) {
                        alt398=1;
                    }
                    switch (alt398) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1392:54: using_clause
                            {
                            pushFollow(FOLLOW_using_clause_in_standard_function11711);
                            using_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1393:10: ^( COUNT_VK ( ASTERISK | expression ) ( over_clause )? )
                    {
                    match(input,COUNT_VK,FOLLOW_COUNT_VK_in_standard_function11725); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1393:21: ( ASTERISK | expression )
                    int alt399=2;
                    int LA399_0 = input.LA(1);

                    if ( (LA399_0==ASTERISK) ) {
                        alt399=1;
                    }
                    else if ( (LA399_0==EXPR||LA399_0==LOGIC_EXPR) ) {
                        alt399=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 399, 0, input);

                        throw nvae;

                    }
                    switch (alt399) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1393:23: ASTERISK
                            {
                            match(input,ASTERISK,FOLLOW_ASTERISK_in_standard_function11729); 

                            }
                            break;
                        case 2 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1393:34: expression
                            {
                            pushFollow(FOLLOW_expression_in_standard_function11733);
                            expression();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1393:47: ( over_clause )?
                    int alt400=2;
                    int LA400_0 = input.LA(1);

                    if ( (LA400_0==OVER_VK) ) {
                        alt400=1;
                    }
                    switch (alt400) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1393:47: over_clause
                            {
                            pushFollow(FOLLOW_over_clause_in_standard_function11737);
                            over_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1394:10: ^( ( CAST_VK | XMLCAST_VK ) ( subquery | expression ) type_spec )
                    {
                    if ( input.LA(1)==CAST_VK||input.LA(1)==XMLCAST_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1394:33: ( subquery | expression )
                    int alt401=2;
                    int LA401_0 = input.LA(1);

                    if ( (LA401_0==SUBQUERY) ) {
                        alt401=1;
                    }
                    else if ( (LA401_0==EXPR||LA401_0==LOGIC_EXPR) ) {
                        alt401=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 401, 0, input);

                        throw nvae;

                    }
                    switch (alt401) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1394:34: subquery
                            {
                            pushFollow(FOLLOW_subquery_in_standard_function11758);
                            subquery();

                            state._fsp--;


                            }
                            break;
                        case 2 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1394:43: expression
                            {
                            pushFollow(FOLLOW_expression_in_standard_function11760);
                            expression();

                            state._fsp--;


                            }
                            break;

                    }


                    pushFollow(FOLLOW_type_spec_in_standard_function11763);
                    type_spec();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1395:10: ^( CHR_VK expression NCHAR_CS_VK )
                    {
                    match(input,CHR_VK,FOLLOW_CHR_VK_in_standard_function11776); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_standard_function11778);
                    expression();

                    state._fsp--;


                    match(input,NCHAR_CS_VK,FOLLOW_NCHAR_CS_VK_in_standard_function11780); 

                    match(input, Token.UP, null); 


                    }
                    break;
                case 6 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1396:10: ^( COLLECT_VK ( SQL92_RESERVED_DISTINCT | SQL92_RESERVED_UNIQUE )? column_name ( collect_order_by_part )? )
                    {
                    match(input,COLLECT_VK,FOLLOW_COLLECT_VK_in_standard_function11793); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1396:23: ( SQL92_RESERVED_DISTINCT | SQL92_RESERVED_UNIQUE )?
                    int alt402=2;
                    int LA402_0 = input.LA(1);

                    if ( (LA402_0==SQL92_RESERVED_DISTINCT||LA402_0==SQL92_RESERVED_UNIQUE) ) {
                        alt402=1;
                    }
                    switch (alt402) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                            {
                            if ( input.LA(1)==SQL92_RESERVED_DISTINCT||input.LA(1)==SQL92_RESERVED_UNIQUE ) {
                                input.consume();
                                state.errorRecovery=false;
                            }
                            else {
                                MismatchedSetException mse = new MismatchedSetException(null,input);
                                throw mse;
                            }


                            }
                            break;

                    }


                    pushFollow(FOLLOW_column_name_in_standard_function11802);
                    column_name();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1396:84: ( collect_order_by_part )?
                    int alt403=2;
                    int LA403_0 = input.LA(1);

                    if ( (LA403_0==SQL92_RESERVED_ORDER) ) {
                        alt403=1;
                    }
                    switch (alt403) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1396:84: collect_order_by_part
                            {
                            pushFollow(FOLLOW_collect_order_by_part_in_standard_function11804);
                            collect_order_by_part();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 7 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1397:10: ^( FUNCTION_ENABLING_WITHIN_OR_OVER function_argument ( within_clause | over_clause )+ )
                    {
                    match(input,FUNCTION_ENABLING_WITHIN_OR_OVER,FOLLOW_FUNCTION_ENABLING_WITHIN_OR_OVER_in_standard_function11818); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_function_argument_in_standard_function11820);
                    function_argument();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1397:63: ( within_clause | over_clause )+
                    int cnt404=0;
                    loop404:
                    do {
                        int alt404=3;
                        int LA404_0 = input.LA(1);

                        if ( (LA404_0==WITHIN_VK) ) {
                            alt404=1;
                        }
                        else if ( (LA404_0==OVER_VK) ) {
                            alt404=2;
                        }


                        switch (alt404) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1397:64: within_clause
                    	    {
                    	    pushFollow(FOLLOW_within_clause_in_standard_function11823);
                    	    within_clause();

                    	    state._fsp--;


                    	    }
                    	    break;
                    	case 2 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1397:78: over_clause
                    	    {
                    	    pushFollow(FOLLOW_over_clause_in_standard_function11825);
                    	    over_clause();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt404 >= 1 ) break loop404;
                                EarlyExitException eee =
                                    new EarlyExitException(404, input);
                                throw eee;
                        }
                        cnt404++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 8 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1398:10: ^( DECOMPOSE_VK expression ( CANONICAL_VK | COMPATIBILITY_VK )? )
                    {
                    match(input,DECOMPOSE_VK,FOLLOW_DECOMPOSE_VK_in_standard_function11841); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_standard_function11843);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1398:36: ( CANONICAL_VK | COMPATIBILITY_VK )?
                    int alt405=2;
                    int LA405_0 = input.LA(1);

                    if ( (LA405_0==CANONICAL_VK||LA405_0==COMPATIBILITY_VK) ) {
                        alt405=1;
                    }
                    switch (alt405) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                            {
                            if ( input.LA(1)==CANONICAL_VK||input.LA(1)==COMPATIBILITY_VK ) {
                                input.consume();
                                state.errorRecovery=false;
                            }
                            else {
                                MismatchedSetException mse = new MismatchedSetException(null,input);
                                throw mse;
                            }


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 9 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1399:10: ^( EXTRACT_VK REGULAR_ID expression )
                    {
                    match(input,EXTRACT_VK,FOLLOW_EXTRACT_VK_in_standard_function11864); 

                    match(input, Token.DOWN, null); 
                    match(input,REGULAR_ID,FOLLOW_REGULAR_ID_in_standard_function11866); 

                    pushFollow(FOLLOW_expression_in_standard_function11868);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 10 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1400:10: ^( ( FIRST_VALUE_VK | LAST_VALUE_VK ) expression ( NULLS_VK )? over_clause )
                    {
                    if ( input.LA(1)==FIRST_VALUE_VK||input.LA(1)==LAST_VALUE_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_standard_function11887);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1400:54: ( NULLS_VK )?
                    int alt406=2;
                    int LA406_0 = input.LA(1);

                    if ( (LA406_0==NULLS_VK) ) {
                        alt406=1;
                    }
                    switch (alt406) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1400:54: NULLS_VK
                            {
                            match(input,NULLS_VK,FOLLOW_NULLS_VK_in_standard_function11889); 

                            }
                            break;

                    }


                    pushFollow(FOLLOW_over_clause_in_standard_function11892);
                    over_clause();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 11 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1401:10: ^( PREDICTION_FUNCTION ( expression )+ ( cost_matrix_clause )? ( using_clause )? )
                    {
                    match(input,PREDICTION_FUNCTION,FOLLOW_PREDICTION_FUNCTION_in_standard_function11906); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1401:32: ( expression )+
                    int cnt407=0;
                    loop407:
                    do {
                        int alt407=2;
                        int LA407_0 = input.LA(1);

                        if ( (LA407_0==EXPR||LA407_0==LOGIC_EXPR) ) {
                            alt407=1;
                        }


                        switch (alt407) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1401:32: expression
                    	    {
                    	    pushFollow(FOLLOW_expression_in_standard_function11908);
                    	    expression();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt407 >= 1 ) break loop407;
                                EarlyExitException eee =
                                    new EarlyExitException(407, input);
                                throw eee;
                        }
                        cnt407++;
                    } while (true);


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1401:44: ( cost_matrix_clause )?
                    int alt408=2;
                    int LA408_0 = input.LA(1);

                    if ( (LA408_0==COST_VK) ) {
                        alt408=1;
                    }
                    switch (alt408) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1401:44: cost_matrix_clause
                            {
                            pushFollow(FOLLOW_cost_matrix_clause_in_standard_function11911);
                            cost_matrix_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1401:64: ( using_clause )?
                    int alt409=2;
                    int LA409_0 = input.LA(1);

                    if ( (LA409_0==PLSQL_NON_RESERVED_USING) ) {
                        alt409=1;
                    }
                    switch (alt409) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1401:64: using_clause
                            {
                            pushFollow(FOLLOW_using_clause_in_standard_function11914);
                            using_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 12 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1402:10: ^( TRANSLATE_VK expression ( CHAR_CS_VK | NCHAR_CS_VK )? ( expression )* )
                    {
                    match(input,TRANSLATE_VK,FOLLOW_TRANSLATE_VK_in_standard_function11928); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_standard_function11930);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1402:36: ( CHAR_CS_VK | NCHAR_CS_VK )?
                    int alt410=2;
                    int LA410_0 = input.LA(1);

                    if ( (LA410_0==CHAR_CS_VK||LA410_0==NCHAR_CS_VK) ) {
                        alt410=1;
                    }
                    switch (alt410) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                            {
                            if ( input.LA(1)==CHAR_CS_VK||input.LA(1)==NCHAR_CS_VK ) {
                                input.consume();
                                state.errorRecovery=false;
                            }
                            else {
                                MismatchedSetException mse = new MismatchedSetException(null,input);
                                throw mse;
                            }


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1402:62: ( expression )*
                    loop411:
                    do {
                        int alt411=2;
                        int LA411_0 = input.LA(1);

                        if ( (LA411_0==EXPR||LA411_0==LOGIC_EXPR) ) {
                            alt411=1;
                        }


                        switch (alt411) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1402:62: expression
                    	    {
                    	    pushFollow(FOLLOW_expression_in_standard_function11939);
                    	    expression();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop411;
                        }
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 13 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1403:10: ^( TREAT_VK expression ( REF_VK )? type_spec )
                    {
                    match(input,TREAT_VK,FOLLOW_TREAT_VK_in_standard_function11953); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_standard_function11955);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1403:32: ( REF_VK )?
                    int alt412=2;
                    int LA412_0 = input.LA(1);

                    if ( (LA412_0==REF_VK) ) {
                        alt412=1;
                    }
                    switch (alt412) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1403:32: REF_VK
                            {
                            match(input,REF_VK,FOLLOW_REF_VK_in_standard_function11957); 

                            }
                            break;

                    }


                    pushFollow(FOLLOW_type_spec_in_standard_function11960);
                    type_spec();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 14 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1404:10: ^( TRIM_VK ( LEADING_VK | TRAILING_VK | BOTH_VK )? expression ( expression )? )
                    {
                    match(input,TRIM_VK,FOLLOW_TRIM_VK_in_standard_function11973); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1404:20: ( LEADING_VK | TRAILING_VK | BOTH_VK )?
                    int alt413=2;
                    int LA413_0 = input.LA(1);

                    if ( (LA413_0==BOTH_VK||LA413_0==LEADING_VK||LA413_0==TRAILING_VK) ) {
                        alt413=1;
                    }
                    switch (alt413) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                            {
                            if ( input.LA(1)==BOTH_VK||input.LA(1)==LEADING_VK||input.LA(1)==TRAILING_VK ) {
                                input.consume();
                                state.errorRecovery=false;
                            }
                            else {
                                MismatchedSetException mse = new MismatchedSetException(null,input);
                                throw mse;
                            }


                            }
                            break;

                    }


                    pushFollow(FOLLOW_expression_in_standard_function11984);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1404:65: ( expression )?
                    int alt414=2;
                    int LA414_0 = input.LA(1);

                    if ( (LA414_0==EXPR||LA414_0==LOGIC_EXPR) ) {
                        alt414=1;
                    }
                    switch (alt414) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1404:65: expression
                            {
                            pushFollow(FOLLOW_expression_in_standard_function11986);
                            expression();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 15 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1406:10: ^( XMLAGG_VK expression ( order_by_clause )? )
                    {
                    match(input,XMLAGG_VK,FOLLOW_XMLAGG_VK_in_standard_function12002); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_standard_function12004);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1406:33: ( order_by_clause )?
                    int alt415=2;
                    int LA415_0 = input.LA(1);

                    if ( (LA415_0==SQL92_RESERVED_ORDER) ) {
                        alt415=1;
                    }
                    switch (alt415) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1406:33: order_by_clause
                            {
                            pushFollow(FOLLOW_order_by_clause_in_standard_function12006);
                            order_by_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 16 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1407:10: ^( ( XMLCOLATTVAL_VK | XMLFOREST_VK ) ( xml_multiuse_expression_element )+ )
                    {
                    if ( input.LA(1)==XMLCOLATTVAL_VK||input.LA(1)==XMLFOREST_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1407:43: ( xml_multiuse_expression_element )+
                    int cnt416=0;
                    loop416:
                    do {
                        int alt416=2;
                        int LA416_0 = input.LA(1);

                        if ( (LA416_0==XML_ELEMENT) ) {
                            alt416=1;
                        }


                        switch (alt416) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1407:43: xml_multiuse_expression_element
                    	    {
                    	    pushFollow(FOLLOW_xml_multiuse_expression_element_in_standard_function12026);
                    	    xml_multiuse_expression_element();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt416 >= 1 ) break loop416;
                                EarlyExitException eee =
                                    new EarlyExitException(416, input);
                                throw eee;
                        }
                        cnt416++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 17 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1408:10: ^( XMLEXISTS_VK expression ( xml_passing_clause )? )
                    {
                    match(input,XMLEXISTS_VK,FOLLOW_XMLEXISTS_VK_in_standard_function12040); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_standard_function12042);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1408:36: ( xml_passing_clause )?
                    int alt417=2;
                    int LA417_0 = input.LA(1);

                    if ( (LA417_0==PASSING_VK) ) {
                        alt417=1;
                    }
                    switch (alt417) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1408:36: xml_passing_clause
                            {
                            pushFollow(FOLLOW_xml_passing_clause_in_standard_function12044);
                            xml_passing_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 18 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1409:10: ^( XMLPARSE_VK ( DOCUMENT_VK | CONTENT_VK ) expression ( WELLFORMED_VK )? )
                    {
                    match(input,XMLPARSE_VK,FOLLOW_XMLPARSE_VK_in_standard_function12058); 

                    match(input, Token.DOWN, null); 
                    if ( input.LA(1)==CONTENT_VK||input.LA(1)==DOCUMENT_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    pushFollow(FOLLOW_expression_in_standard_function12066);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1409:60: ( WELLFORMED_VK )?
                    int alt418=2;
                    int LA418_0 = input.LA(1);

                    if ( (LA418_0==WELLFORMED_VK) ) {
                        alt418=1;
                    }
                    switch (alt418) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1409:60: WELLFORMED_VK
                            {
                            match(input,WELLFORMED_VK,FOLLOW_WELLFORMED_VK_in_standard_function12068); 

                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 19 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1410:10: ^( XMLQUERY_VK expression ( xml_passing_clause )? ( SQL92_RESERVED_NULL )? )
                    {
                    match(input,XMLQUERY_VK,FOLLOW_XMLQUERY_VK_in_standard_function12082); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_standard_function12084);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1410:35: ( xml_passing_clause )?
                    int alt419=2;
                    int LA419_0 = input.LA(1);

                    if ( (LA419_0==PASSING_VK) ) {
                        alt419=1;
                    }
                    switch (alt419) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1410:35: xml_passing_clause
                            {
                            pushFollow(FOLLOW_xml_passing_clause_in_standard_function12086);
                            xml_passing_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1410:55: ( SQL92_RESERVED_NULL )?
                    int alt420=2;
                    int LA420_0 = input.LA(1);

                    if ( (LA420_0==SQL92_RESERVED_NULL) ) {
                        alt420=1;
                    }
                    switch (alt420) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1410:55: SQL92_RESERVED_NULL
                            {
                            match(input,SQL92_RESERVED_NULL,FOLLOW_SQL92_RESERVED_NULL_in_standard_function12089); 

                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 20 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1411:10: ^( XMLROOT_VK expression xml_param_version_part ( xmlroot_param_standalone_part )? )
                    {
                    match(input,XMLROOT_VK,FOLLOW_XMLROOT_VK_in_standard_function12103); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_standard_function12105);
                    expression();

                    state._fsp--;


                    pushFollow(FOLLOW_xml_param_version_part_in_standard_function12107);
                    xml_param_version_part();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1411:57: ( xmlroot_param_standalone_part )?
                    int alt421=2;
                    int LA421_0 = input.LA(1);

                    if ( (LA421_0==STANDALONE_VK) ) {
                        alt421=1;
                    }
                    switch (alt421) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1411:57: xmlroot_param_standalone_part
                            {
                            pushFollow(FOLLOW_xmlroot_param_standalone_part_in_standard_function12109);
                            xmlroot_param_standalone_part();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 21 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1412:10: ^( XMLTABLE_VK ( xml_namespaces_clause )? expression ( xml_passing_clause )? ( xml_table_column )* )
                    {
                    match(input,XMLTABLE_VK,FOLLOW_XMLTABLE_VK_in_standard_function12123); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1412:24: ( xml_namespaces_clause )?
                    int alt422=2;
                    int LA422_0 = input.LA(1);

                    if ( (LA422_0==XMLNAMESPACES_VK) ) {
                        alt422=1;
                    }
                    switch (alt422) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1412:24: xml_namespaces_clause
                            {
                            pushFollow(FOLLOW_xml_namespaces_clause_in_standard_function12125);
                            xml_namespaces_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    pushFollow(FOLLOW_expression_in_standard_function12128);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1412:58: ( xml_passing_clause )?
                    int alt423=2;
                    int LA423_0 = input.LA(1);

                    if ( (LA423_0==PASSING_VK) ) {
                        alt423=1;
                    }
                    switch (alt423) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1412:58: xml_passing_clause
                            {
                            pushFollow(FOLLOW_xml_passing_clause_in_standard_function12130);
                            xml_passing_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1412:78: ( xml_table_column )*
                    loop424:
                    do {
                        int alt424=2;
                        int LA424_0 = input.LA(1);

                        if ( (LA424_0==XML_COLUMN) ) {
                            alt424=1;
                        }


                        switch (alt424) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1412:78: xml_table_column
                    	    {
                    	    pushFollow(FOLLOW_xml_table_column_in_standard_function12133);
                    	    xml_table_column();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop424;
                        }
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 22 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1413:10: ^( XMLELEMENT_VK ( ENTITYESCAPING_VK | NOENTITYESCAPING_VK )? ( NAME_VK | EVALNAME_VK )? expression ( xml_attributes_clause )? ( expression ( alias )? )* )
                    {
                    match(input,XMLELEMENT_VK,FOLLOW_XMLELEMENT_VK_in_standard_function12147); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1414:13: ( ENTITYESCAPING_VK | NOENTITYESCAPING_VK )?
                    int alt425=2;
                    int LA425_0 = input.LA(1);

                    if ( (LA425_0==ENTITYESCAPING_VK||LA425_0==NOENTITYESCAPING_VK) ) {
                        alt425=1;
                    }
                    switch (alt425) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                            {
                            if ( input.LA(1)==ENTITYESCAPING_VK||input.LA(1)==NOENTITYESCAPING_VK ) {
                                input.consume();
                                state.errorRecovery=false;
                            }
                            else {
                                MismatchedSetException mse = new MismatchedSetException(null,input);
                                throw mse;
                            }


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1415:13: ( NAME_VK | EVALNAME_VK )?
                    int alt426=2;
                    int LA426_0 = input.LA(1);

                    if ( (LA426_0==EVALNAME_VK||LA426_0==NAME_VK) ) {
                        alt426=1;
                    }
                    switch (alt426) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                            {
                            if ( input.LA(1)==EVALNAME_VK||input.LA(1)==NAME_VK ) {
                                input.consume();
                                state.errorRecovery=false;
                            }
                            else {
                                MismatchedSetException mse = new MismatchedSetException(null,input);
                                throw mse;
                            }


                            }
                            break;

                    }


                    pushFollow(FOLLOW_expression_in_standard_function12187);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1416:13: ( xml_attributes_clause )?
                    int alt427=2;
                    int LA427_0 = input.LA(1);

                    if ( (LA427_0==XMLATTRIBUTES_VK) ) {
                        alt427=1;
                    }
                    switch (alt427) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1416:13: xml_attributes_clause
                            {
                            pushFollow(FOLLOW_xml_attributes_clause_in_standard_function12201);
                            xml_attributes_clause();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1416:36: ( expression ( alias )? )*
                    loop429:
                    do {
                        int alt429=2;
                        int LA429_0 = input.LA(1);

                        if ( (LA429_0==EXPR||LA429_0==LOGIC_EXPR) ) {
                            alt429=1;
                        }


                        switch (alt429) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1416:37: expression ( alias )?
                    	    {
                    	    pushFollow(FOLLOW_expression_in_standard_function12205);
                    	    expression();

                    	    state._fsp--;


                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1416:48: ( alias )?
                    	    int alt428=2;
                    	    int LA428_0 = input.LA(1);

                    	    if ( (LA428_0==ALIAS) ) {
                    	        alt428=1;
                    	    }
                    	    switch (alt428) {
                    	        case 1 :
                    	            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1416:48: alias
                    	            {
                    	            pushFollow(FOLLOW_alias_in_standard_function12207);
                    	            alias();

                    	            state._fsp--;


                    	            }
                    	            break;

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop429;
                        }
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 23 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1418:10: ^( XMLPI_VK ( NAME_VK ( char_set_name )? ID | EVALNAME_VK expression ) ( expression )? )
                    {
                    match(input,XMLPI_VK,FOLLOW_XMLPI_VK_in_standard_function12232); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1419:17: ( NAME_VK ( char_set_name )? ID | EVALNAME_VK expression )
                    int alt431=2;
                    int LA431_0 = input.LA(1);

                    if ( (LA431_0==NAME_VK) ) {
                        alt431=1;
                    }
                    else if ( (LA431_0==EVALNAME_VK) ) {
                        alt431=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 431, 0, input);

                        throw nvae;

                    }
                    switch (alt431) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1419:22: NAME_VK ( char_set_name )? ID
                            {
                            match(input,NAME_VK,FOLLOW_NAME_VK_in_standard_function12255); 

                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1419:30: ( char_set_name )?
                            int alt430=2;
                            int LA430_0 = input.LA(1);

                            if ( (LA430_0==CHAR_SET_NAME) ) {
                                alt430=1;
                            }
                            switch (alt430) {
                                case 1 :
                                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1419:30: char_set_name
                                    {
                                    pushFollow(FOLLOW_char_set_name_in_standard_function12257);
                                    char_set_name();

                                    state._fsp--;


                                    }
                                    break;

                            }


                            match(input,ID,FOLLOW_ID_in_standard_function12260); 

                            }
                            break;
                        case 2 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1420:22: EVALNAME_VK expression
                            {
                            match(input,EVALNAME_VK,FOLLOW_EVALNAME_VK_in_standard_function12283); 

                            pushFollow(FOLLOW_expression_in_standard_function12285);
                            expression();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1422:17: ( expression )?
                    int alt432=2;
                    int LA432_0 = input.LA(1);

                    if ( (LA432_0==EXPR||LA432_0==LOGIC_EXPR) ) {
                        alt432=1;
                    }
                    switch (alt432) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1422:17: expression
                            {
                            pushFollow(FOLLOW_expression_in_standard_function12321);
                            expression();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 24 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1424:10: ^( XMLSERIALIZE_VK ( DOCUMENT_VK | CONTENT_VK ) expression ( type_spec )? ( xmlserialize_param_enconding_part )? ( xml_param_version_part )? ( xmlserialize_param_ident_part )? ( ( HIDE_VK | SHOW_VK ) DEFAULTS_VK )? )
                    {
                    match(input,XMLSERIALIZE_VK,FOLLOW_XMLSERIALIZE_VK_in_standard_function12344); 

                    match(input, Token.DOWN, null); 
                    if ( input.LA(1)==CONTENT_VK||input.LA(1)==DOCUMENT_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    pushFollow(FOLLOW_expression_in_standard_function12384);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1426:28: ( type_spec )?
                    int alt433=2;
                    int LA433_0 = input.LA(1);

                    if ( (LA433_0==CUSTOM_TYPE||LA433_0==INTERVAL_DATATYPE||LA433_0==NATIVE_DATATYPE) ) {
                        alt433=1;
                    }
                    switch (alt433) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1426:28: type_spec
                            {
                            pushFollow(FOLLOW_type_spec_in_standard_function12386);
                            type_spec();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1427:17: ( xmlserialize_param_enconding_part )?
                    int alt434=2;
                    int LA434_0 = input.LA(1);

                    if ( (LA434_0==ENCODING_VK) ) {
                        alt434=1;
                    }
                    switch (alt434) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1427:17: xmlserialize_param_enconding_part
                            {
                            pushFollow(FOLLOW_xmlserialize_param_enconding_part_in_standard_function12405);
                            xmlserialize_param_enconding_part();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1428:17: ( xml_param_version_part )?
                    int alt435=2;
                    int LA435_0 = input.LA(1);

                    if ( (LA435_0==VERSION_VK) ) {
                        alt435=1;
                    }
                    switch (alt435) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1428:17: xml_param_version_part
                            {
                            pushFollow(FOLLOW_xml_param_version_part_in_standard_function12424);
                            xml_param_version_part();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1429:17: ( xmlserialize_param_ident_part )?
                    int alt436=2;
                    int LA436_0 = input.LA(1);

                    if ( (LA436_0==INDENT_VK||LA436_0==NO_VK) ) {
                        alt436=1;
                    }
                    switch (alt436) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1429:17: xmlserialize_param_ident_part
                            {
                            pushFollow(FOLLOW_xmlserialize_param_ident_part_in_standard_function12443);
                            xmlserialize_param_ident_part();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1430:17: ( ( HIDE_VK | SHOW_VK ) DEFAULTS_VK )?
                    int alt437=2;
                    int LA437_0 = input.LA(1);

                    if ( (LA437_0==HIDE_VK||LA437_0==SHOW_VK) ) {
                        alt437=1;
                    }
                    switch (alt437) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1430:18: ( HIDE_VK | SHOW_VK ) DEFAULTS_VK
                            {
                            if ( input.LA(1)==HIDE_VK||input.LA(1)==SHOW_VK ) {
                                input.consume();
                                state.errorRecovery=false;
                            }
                            else {
                                MismatchedSetException mse = new MismatchedSetException(null,input);
                                throw mse;
                            }


                            match(input,DEFAULTS_VK,FOLLOW_DEFAULTS_VK_in_standard_function12469); 

                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "standard_function"



    // $ANTLR start "over_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1434:1: over_clause : ^( OVER_VK ( query_partition_clause )? ( order_by_clause ( windowing_clause )? )? ) ;
    public final void over_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1435:5: ( ^( OVER_VK ( query_partition_clause )? ( order_by_clause ( windowing_clause )? )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1435:10: ^( OVER_VK ( query_partition_clause )? ( order_by_clause ( windowing_clause )? )? )
            {
            match(input,OVER_VK,FOLLOW_OVER_VK_in_over_clause12502); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1435:20: ( query_partition_clause )?
                int alt439=2;
                int LA439_0 = input.LA(1);

                if ( (LA439_0==PARTITION_VK) ) {
                    alt439=1;
                }
                switch (alt439) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1435:20: query_partition_clause
                        {
                        pushFollow(FOLLOW_query_partition_clause_in_over_clause12504);
                        query_partition_clause();

                        state._fsp--;


                        }
                        break;

                }


                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1435:44: ( order_by_clause ( windowing_clause )? )?
                int alt441=2;
                int LA441_0 = input.LA(1);

                if ( (LA441_0==SQL92_RESERVED_ORDER) ) {
                    alt441=1;
                }
                switch (alt441) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1435:45: order_by_clause ( windowing_clause )?
                        {
                        pushFollow(FOLLOW_order_by_clause_in_over_clause12508);
                        order_by_clause();

                        state._fsp--;


                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1435:61: ( windowing_clause )?
                        int alt440=2;
                        int LA440_0 = input.LA(1);

                        if ( (LA440_0==RANGE_VK||LA440_0==ROWS_VK) ) {
                            alt440=1;
                        }
                        switch (alt440) {
                            case 1 :
                                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1435:61: windowing_clause
                                {
                                pushFollow(FOLLOW_windowing_clause_in_over_clause12510);
                                windowing_clause();

                                state._fsp--;


                                }
                                break;

                        }


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "over_clause"



    // $ANTLR start "windowing_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1438:1: windowing_clause : ^( ( ROWS_VK | RANGE_VK ) ( ^( SQL92_RESERVED_BETWEEN windowing_elements windowing_elements ) | ( windowing_elements )+ ) ) ;
    public final void windowing_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1439:5: ( ^( ( ROWS_VK | RANGE_VK ) ( ^( SQL92_RESERVED_BETWEEN windowing_elements windowing_elements ) | ( windowing_elements )+ ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1439:10: ^( ( ROWS_VK | RANGE_VK ) ( ^( SQL92_RESERVED_BETWEEN windowing_elements windowing_elements ) | ( windowing_elements )+ ) )
            {
            if ( input.LA(1)==RANGE_VK||input.LA(1)==ROWS_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1440:13: ( ^( SQL92_RESERVED_BETWEEN windowing_elements windowing_elements ) | ( windowing_elements )+ )
            int alt443=2;
            int LA443_0 = input.LA(1);

            if ( (LA443_0==SQL92_RESERVED_BETWEEN) ) {
                alt443=1;
            }
            else if ( (LA443_0==CURRENT_VK||LA443_0==FOLLOWING_VK||LA443_0==PRECEDING_VK||LA443_0==UNBOUNDED_VK) ) {
                alt443=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 443, 0, input);

                throw nvae;

            }
            switch (alt443) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1440:18: ^( SQL92_RESERVED_BETWEEN windowing_elements windowing_elements )
                    {
                    match(input,SQL92_RESERVED_BETWEEN,FOLLOW_SQL92_RESERVED_BETWEEN_in_windowing_clause12559); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_windowing_elements_in_windowing_clause12561);
                    windowing_elements();

                    state._fsp--;


                    pushFollow(FOLLOW_windowing_elements_in_windowing_clause12563);
                    windowing_elements();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1441:18: ( windowing_elements )+
                    {
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1441:18: ( windowing_elements )+
                    int cnt442=0;
                    loop442:
                    do {
                        int alt442=2;
                        int LA442_0 = input.LA(1);

                        if ( (LA442_0==CURRENT_VK||LA442_0==FOLLOWING_VK||LA442_0==PRECEDING_VK||LA442_0==UNBOUNDED_VK) ) {
                            alt442=1;
                        }


                        switch (alt442) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1441:18: windowing_elements
                    	    {
                    	    pushFollow(FOLLOW_windowing_elements_in_windowing_clause12583);
                    	    windowing_elements();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt442 >= 1 ) break loop442;
                                EarlyExitException eee =
                                    new EarlyExitException(442, input);
                                throw eee;
                        }
                        cnt442++;
                    } while (true);


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "windowing_clause"



    // $ANTLR start "windowing_elements"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1446:1: windowing_elements : ( ^( UNBOUNDED_VK PRECEDING_VK ) | ^( CURRENT_VK ROW_VK ) | ^( ( PRECEDING_VK | FOLLOWING_VK ) expression ) );
    public final void windowing_elements() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1447:5: ( ^( UNBOUNDED_VK PRECEDING_VK ) | ^( CURRENT_VK ROW_VK ) | ^( ( PRECEDING_VK | FOLLOWING_VK ) expression ) )
            int alt444=3;
            switch ( input.LA(1) ) {
            case UNBOUNDED_VK:
                {
                alt444=1;
                }
                break;
            case CURRENT_VK:
                {
                alt444=2;
                }
                break;
            case FOLLOWING_VK:
            case PRECEDING_VK:
                {
                alt444=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 444, 0, input);

                throw nvae;

            }

            switch (alt444) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1447:10: ^( UNBOUNDED_VK PRECEDING_VK )
                    {
                    match(input,UNBOUNDED_VK,FOLLOW_UNBOUNDED_VK_in_windowing_elements12629); 

                    match(input, Token.DOWN, null); 
                    match(input,PRECEDING_VK,FOLLOW_PRECEDING_VK_in_windowing_elements12631); 

                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1448:10: ^( CURRENT_VK ROW_VK )
                    {
                    match(input,CURRENT_VK,FOLLOW_CURRENT_VK_in_windowing_elements12644); 

                    match(input, Token.DOWN, null); 
                    match(input,ROW_VK,FOLLOW_ROW_VK_in_windowing_elements12646); 

                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1449:10: ^( ( PRECEDING_VK | FOLLOWING_VK ) expression )
                    {
                    if ( input.LA(1)==FOLLOWING_VK||input.LA(1)==PRECEDING_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_windowing_elements12665);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "windowing_elements"



    // $ANTLR start "using_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1452:1: using_clause : ^( PLSQL_NON_RESERVED_USING ( using_element )+ ) ;
    public final void using_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1453:5: ( ^( PLSQL_NON_RESERVED_USING ( using_element )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1453:10: ^( PLSQL_NON_RESERVED_USING ( using_element )+ )
            {
            match(input,PLSQL_NON_RESERVED_USING,FOLLOW_PLSQL_NON_RESERVED_USING_in_using_clause12687); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1453:37: ( using_element )+
            int cnt445=0;
            loop445:
            do {
                int alt445=2;
                int LA445_0 = input.LA(1);

                if ( (LA445_0==ASTERISK||LA445_0==ELEMENT) ) {
                    alt445=1;
                }


                switch (alt445) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1453:37: using_element
            	    {
            	    pushFollow(FOLLOW_using_element_in_using_clause12689);
            	    using_element();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt445 >= 1 ) break loop445;
                        EarlyExitException eee =
                            new EarlyExitException(445, input);
                        throw eee;
                }
                cnt445++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "using_clause"



    // $ANTLR start "using_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1456:1: using_element : ( ^( ELEMENT ( SQL92_RESERVED_IN )? ( OUT_VK )? expression ( alias )? ) | ASTERISK );
    public final void using_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1457:5: ( ^( ELEMENT ( SQL92_RESERVED_IN )? ( OUT_VK )? expression ( alias )? ) | ASTERISK )
            int alt449=2;
            int LA449_0 = input.LA(1);

            if ( (LA449_0==ELEMENT) ) {
                alt449=1;
            }
            else if ( (LA449_0==ASTERISK) ) {
                alt449=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 449, 0, input);

                throw nvae;

            }
            switch (alt449) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1457:10: ^( ELEMENT ( SQL92_RESERVED_IN )? ( OUT_VK )? expression ( alias )? )
                    {
                    match(input,ELEMENT,FOLLOW_ELEMENT_in_using_element12712); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1457:20: ( SQL92_RESERVED_IN )?
                    int alt446=2;
                    int LA446_0 = input.LA(1);

                    if ( (LA446_0==SQL92_RESERVED_IN) ) {
                        alt446=1;
                    }
                    switch (alt446) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1457:20: SQL92_RESERVED_IN
                            {
                            match(input,SQL92_RESERVED_IN,FOLLOW_SQL92_RESERVED_IN_in_using_element12714); 

                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1457:39: ( OUT_VK )?
                    int alt447=2;
                    int LA447_0 = input.LA(1);

                    if ( (LA447_0==OUT_VK) ) {
                        alt447=1;
                    }
                    switch (alt447) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1457:39: OUT_VK
                            {
                            match(input,OUT_VK,FOLLOW_OUT_VK_in_using_element12717); 

                            }
                            break;

                    }


                    pushFollow(FOLLOW_expression_in_using_element12720);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1457:58: ( alias )?
                    int alt448=2;
                    int LA448_0 = input.LA(1);

                    if ( (LA448_0==ALIAS) ) {
                        alt448=1;
                    }
                    switch (alt448) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1457:58: alias
                            {
                            pushFollow(FOLLOW_alias_in_using_element12722);
                            alias();

                            state._fsp--;


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1458:10: ASTERISK
                    {
                    match(input,ASTERISK,FOLLOW_ASTERISK_in_using_element12735); 

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "using_element"



    // $ANTLR start "collect_order_by_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1461:1: collect_order_by_part : ^( SQL92_RESERVED_ORDER expression ) ;
    public final void collect_order_by_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1462:5: ( ^( SQL92_RESERVED_ORDER expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1462:10: ^( SQL92_RESERVED_ORDER expression )
            {
            match(input,SQL92_RESERVED_ORDER,FOLLOW_SQL92_RESERVED_ORDER_in_collect_order_by_part12756); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_collect_order_by_part12758);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "collect_order_by_part"



    // $ANTLR start "within_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1465:1: within_clause : ^( WITHIN_VK order_by_clause ) ;
    public final void within_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1466:5: ( ^( WITHIN_VK order_by_clause ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1466:10: ^( WITHIN_VK order_by_clause )
            {
            match(input,WITHIN_VK,FOLLOW_WITHIN_VK_in_within_clause12780); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_order_by_clause_in_within_clause12782);
            order_by_clause();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "within_clause"



    // $ANTLR start "cost_matrix_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1469:1: cost_matrix_clause : ^( COST_VK ( PLSQL_NON_RESERVED_MODEL ( AUTO_VK )? | ( cost_class_name )+ expression_list ) ) ;
    public final void cost_matrix_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1470:5: ( ^( COST_VK ( PLSQL_NON_RESERVED_MODEL ( AUTO_VK )? | ( cost_class_name )+ expression_list ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1470:10: ^( COST_VK ( PLSQL_NON_RESERVED_MODEL ( AUTO_VK )? | ( cost_class_name )+ expression_list ) )
            {
            match(input,COST_VK,FOLLOW_COST_VK_in_cost_matrix_clause12804); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1471:13: ( PLSQL_NON_RESERVED_MODEL ( AUTO_VK )? | ( cost_class_name )+ expression_list )
            int alt452=2;
            int LA452_0 = input.LA(1);

            if ( (LA452_0==PLSQL_NON_RESERVED_MODEL) ) {
                alt452=1;
            }
            else if ( (LA452_0==COST_CLASS_NAME) ) {
                alt452=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 452, 0, input);

                throw nvae;

            }
            switch (alt452) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1471:18: PLSQL_NON_RESERVED_MODEL ( AUTO_VK )?
                    {
                    match(input,PLSQL_NON_RESERVED_MODEL,FOLLOW_PLSQL_NON_RESERVED_MODEL_in_cost_matrix_clause12823); 

                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1471:43: ( AUTO_VK )?
                    int alt450=2;
                    int LA450_0 = input.LA(1);

                    if ( (LA450_0==AUTO_VK) ) {
                        alt450=1;
                    }
                    switch (alt450) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1471:43: AUTO_VK
                            {
                            match(input,AUTO_VK,FOLLOW_AUTO_VK_in_cost_matrix_clause12825); 

                            }
                            break;

                    }


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1472:18: ( cost_class_name )+ expression_list
                    {
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1472:18: ( cost_class_name )+
                    int cnt451=0;
                    loop451:
                    do {
                        int alt451=2;
                        int LA451_0 = input.LA(1);

                        if ( (LA451_0==COST_CLASS_NAME) ) {
                            alt451=1;
                        }


                        switch (alt451) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1472:18: cost_class_name
                    	    {
                    	    pushFollow(FOLLOW_cost_class_name_in_cost_matrix_clause12845);
                    	    cost_class_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt451 >= 1 ) break loop451;
                                EarlyExitException eee =
                                    new EarlyExitException(451, input);
                                throw eee;
                        }
                        cnt451++;
                    } while (true);


                    pushFollow(FOLLOW_expression_list_in_cost_matrix_clause12848);
                    expression_list();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "cost_matrix_clause"



    // $ANTLR start "xml_passing_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1477:1: xml_passing_clause : ^( PASSING_VK ( VALUE_VK )? expression ( alias )? ( expression ( alias )? )? ) ;
    public final void xml_passing_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1478:5: ( ^( PASSING_VK ( VALUE_VK )? expression ( alias )? ( expression ( alias )? )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1478:10: ^( PASSING_VK ( VALUE_VK )? expression ( alias )? ( expression ( alias )? )? )
            {
            match(input,PASSING_VK,FOLLOW_PASSING_VK_in_xml_passing_clause12893); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1478:23: ( VALUE_VK )?
            int alt453=2;
            int LA453_0 = input.LA(1);

            if ( (LA453_0==VALUE_VK) ) {
                alt453=1;
            }
            switch (alt453) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1478:23: VALUE_VK
                    {
                    match(input,VALUE_VK,FOLLOW_VALUE_VK_in_xml_passing_clause12895); 

                    }
                    break;

            }


            pushFollow(FOLLOW_expression_in_xml_passing_clause12898);
            expression();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1478:44: ( alias )?
            int alt454=2;
            int LA454_0 = input.LA(1);

            if ( (LA454_0==ALIAS) ) {
                alt454=1;
            }
            switch (alt454) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1478:44: alias
                    {
                    pushFollow(FOLLOW_alias_in_xml_passing_clause12900);
                    alias();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1478:51: ( expression ( alias )? )?
            int alt456=2;
            int LA456_0 = input.LA(1);

            if ( (LA456_0==EXPR||LA456_0==LOGIC_EXPR) ) {
                alt456=1;
            }
            switch (alt456) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1478:52: expression ( alias )?
                    {
                    pushFollow(FOLLOW_expression_in_xml_passing_clause12904);
                    expression();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1478:63: ( alias )?
                    int alt455=2;
                    int LA455_0 = input.LA(1);

                    if ( (LA455_0==ALIAS) ) {
                        alt455=1;
                    }
                    switch (alt455) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1478:63: alias
                            {
                            pushFollow(FOLLOW_alias_in_xml_passing_clause12906);
                            alias();

                            state._fsp--;


                            }
                            break;

                    }


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "xml_passing_clause"



    // $ANTLR start "xml_attributes_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1481:1: xml_attributes_clause : ^( XMLATTRIBUTES_VK ( ENTITYESCAPING_VK | NOENTITYESCAPING_VK )? ( SCHEMACHECK_VK | NOSCHEMACHECK_VK )? ( xml_multiuse_expression_element )+ ) ;
    public final void xml_attributes_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1482:5: ( ^( XMLATTRIBUTES_VK ( ENTITYESCAPING_VK | NOENTITYESCAPING_VK )? ( SCHEMACHECK_VK | NOSCHEMACHECK_VK )? ( xml_multiuse_expression_element )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1482:10: ^( XMLATTRIBUTES_VK ( ENTITYESCAPING_VK | NOENTITYESCAPING_VK )? ( SCHEMACHECK_VK | NOSCHEMACHECK_VK )? ( xml_multiuse_expression_element )+ )
            {
            match(input,XMLATTRIBUTES_VK,FOLLOW_XMLATTRIBUTES_VK_in_xml_attributes_clause12931); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1483:13: ( ENTITYESCAPING_VK | NOENTITYESCAPING_VK )?
            int alt457=2;
            int LA457_0 = input.LA(1);

            if ( (LA457_0==ENTITYESCAPING_VK||LA457_0==NOENTITYESCAPING_VK) ) {
                alt457=1;
            }
            switch (alt457) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                    {
                    if ( input.LA(1)==ENTITYESCAPING_VK||input.LA(1)==NOENTITYESCAPING_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1484:13: ( SCHEMACHECK_VK | NOSCHEMACHECK_VK )?
            int alt458=2;
            int LA458_0 = input.LA(1);

            if ( (LA458_0==NOSCHEMACHECK_VK||LA458_0==SCHEMACHECK_VK) ) {
                alt458=1;
            }
            switch (alt458) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                    {
                    if ( input.LA(1)==NOSCHEMACHECK_VK||input.LA(1)==SCHEMACHECK_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1485:13: ( xml_multiuse_expression_element )+
            int cnt459=0;
            loop459:
            do {
                int alt459=2;
                int LA459_0 = input.LA(1);

                if ( (LA459_0==XML_ELEMENT) ) {
                    alt459=1;
                }


                switch (alt459) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1485:13: xml_multiuse_expression_element
            	    {
            	    pushFollow(FOLLOW_xml_multiuse_expression_element_in_xml_attributes_clause12983);
            	    xml_multiuse_expression_element();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt459 >= 1 ) break loop459;
                        EarlyExitException eee =
                            new EarlyExitException(459, input);
                        throw eee;
                }
                cnt459++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "xml_attributes_clause"



    // $ANTLR start "xml_namespaces_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1489:1: xml_namespaces_clause : ^( XMLNAMESPACES_VK ( expression ( alias )? )* ( xml_general_default_part )? ) ;
    public final void xml_namespaces_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1490:5: ( ^( XMLNAMESPACES_VK ( expression ( alias )? )* ( xml_general_default_part )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1490:10: ^( XMLNAMESPACES_VK ( expression ( alias )? )* ( xml_general_default_part )? )
            {
            match(input,XMLNAMESPACES_VK,FOLLOW_XMLNAMESPACES_VK_in_xml_namespaces_clause13015); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1491:13: ( expression ( alias )? )*
                loop461:
                do {
                    int alt461=2;
                    int LA461_0 = input.LA(1);

                    if ( (LA461_0==EXPR||LA461_0==LOGIC_EXPR) ) {
                        alt461=1;
                    }


                    switch (alt461) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1491:14: expression ( alias )?
                	    {
                	    pushFollow(FOLLOW_expression_in_xml_namespaces_clause13030);
                	    expression();

                	    state._fsp--;


                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1491:25: ( alias )?
                	    int alt460=2;
                	    int LA460_0 = input.LA(1);

                	    if ( (LA460_0==ALIAS) ) {
                	        alt460=1;
                	    }
                	    switch (alt460) {
                	        case 1 :
                	            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1491:25: alias
                	            {
                	            pushFollow(FOLLOW_alias_in_xml_namespaces_clause13032);
                	            alias();

                	            state._fsp--;


                	            }
                	            break;

                	    }


                	    }
                	    break;

                	default :
                	    break loop461;
                    }
                } while (true);


                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1491:34: ( xml_general_default_part )?
                int alt462=2;
                int LA462_0 = input.LA(1);

                if ( (LA462_0==SQL92_RESERVED_DEFAULT) ) {
                    alt462=1;
                }
                switch (alt462) {
                    case 1 :
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1491:34: xml_general_default_part
                        {
                        pushFollow(FOLLOW_xml_general_default_part_in_xml_namespaces_clause13037);
                        xml_general_default_part();

                        state._fsp--;


                        }
                        break;

                }


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "xml_namespaces_clause"



    // $ANTLR start "xml_table_column"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1495:1: xml_table_column : ^( XML_COLUMN xml_column_name ( ORDINALITY_VK | type_spec ( expression )? ( xml_general_default_part )? ) ) ;
    public final void xml_table_column() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1496:5: ( ^( XML_COLUMN xml_column_name ( ORDINALITY_VK | type_spec ( expression )? ( xml_general_default_part )? ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1496:10: ^( XML_COLUMN xml_column_name ( ORDINALITY_VK | type_spec ( expression )? ( xml_general_default_part )? ) )
            {
            match(input,XML_COLUMN,FOLLOW_XML_COLUMN_in_xml_table_column13069); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_xml_column_name_in_xml_table_column13071);
            xml_column_name();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1496:39: ( ORDINALITY_VK | type_spec ( expression )? ( xml_general_default_part )? )
            int alt465=2;
            int LA465_0 = input.LA(1);

            if ( (LA465_0==ORDINALITY_VK) ) {
                alt465=1;
            }
            else if ( (LA465_0==CUSTOM_TYPE||LA465_0==INTERVAL_DATATYPE||LA465_0==NATIVE_DATATYPE) ) {
                alt465=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 465, 0, input);

                throw nvae;

            }
            switch (alt465) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1496:40: ORDINALITY_VK
                    {
                    match(input,ORDINALITY_VK,FOLLOW_ORDINALITY_VK_in_xml_table_column13074); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1496:54: type_spec ( expression )? ( xml_general_default_part )?
                    {
                    pushFollow(FOLLOW_type_spec_in_xml_table_column13076);
                    type_spec();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1496:64: ( expression )?
                    int alt463=2;
                    int LA463_0 = input.LA(1);

                    if ( (LA463_0==EXPR||LA463_0==LOGIC_EXPR) ) {
                        alt463=1;
                    }
                    switch (alt463) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1496:64: expression
                            {
                            pushFollow(FOLLOW_expression_in_xml_table_column13078);
                            expression();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1496:76: ( xml_general_default_part )?
                    int alt464=2;
                    int LA464_0 = input.LA(1);

                    if ( (LA464_0==SQL92_RESERVED_DEFAULT) ) {
                        alt464=1;
                    }
                    switch (alt464) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1496:76: xml_general_default_part
                            {
                            pushFollow(FOLLOW_xml_general_default_part_in_xml_table_column13081);
                            xml_general_default_part();

                            state._fsp--;


                            }
                            break;

                    }


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "xml_table_column"



    // $ANTLR start "xml_general_default_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1499:1: xml_general_default_part : ^( SQL92_RESERVED_DEFAULT expression ) ;
    public final void xml_general_default_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1500:5: ( ^( SQL92_RESERVED_DEFAULT expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1500:10: ^( SQL92_RESERVED_DEFAULT expression )
            {
            match(input,SQL92_RESERVED_DEFAULT,FOLLOW_SQL92_RESERVED_DEFAULT_in_xml_general_default_part13106); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_xml_general_default_part13108);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "xml_general_default_part"



    // $ANTLR start "xml_multiuse_expression_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1503:1: xml_multiuse_expression_element : ^( XML_ELEMENT expression ( xml_alias )? ) ;
    public final void xml_multiuse_expression_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1504:5: ( ^( XML_ELEMENT expression ( xml_alias )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1504:10: ^( XML_ELEMENT expression ( xml_alias )? )
            {
            match(input,XML_ELEMENT,FOLLOW_XML_ELEMENT_in_xml_multiuse_expression_element13130); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_xml_multiuse_expression_element13132);
            expression();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1504:35: ( xml_alias )?
            int alt466=2;
            int LA466_0 = input.LA(1);

            if ( (LA466_0==XML_ALIAS) ) {
                alt466=1;
            }
            switch (alt466) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1504:35: xml_alias
                    {
                    pushFollow(FOLLOW_xml_alias_in_xml_multiuse_expression_element13134);
                    xml_alias();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "xml_multiuse_expression_element"



    // $ANTLR start "xml_alias"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1507:1: xml_alias : ( ^( XML_ALIAS ID ) | ^( XML_ALIAS ^( EVALNAME_VK expression ) ) );
    public final void xml_alias() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1508:5: ( ^( XML_ALIAS ID ) | ^( XML_ALIAS ^( EVALNAME_VK expression ) ) )
            int alt467=2;
            int LA467_0 = input.LA(1);

            if ( (LA467_0==XML_ALIAS) ) {
                int LA467_1 = input.LA(2);

                if ( (LA467_1==DOWN) ) {
                    int LA467_2 = input.LA(3);

                    if ( (LA467_2==ID) ) {
                        alt467=1;
                    }
                    else if ( (LA467_2==EVALNAME_VK) ) {
                        alt467=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 467, 2, input);

                        throw nvae;

                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 467, 1, input);

                    throw nvae;

                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 467, 0, input);

                throw nvae;

            }
            switch (alt467) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1508:10: ^( XML_ALIAS ID )
                    {
                    match(input,XML_ALIAS,FOLLOW_XML_ALIAS_in_xml_alias13157); 

                    match(input, Token.DOWN, null); 
                    match(input,ID,FOLLOW_ID_in_xml_alias13159); 

                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1509:10: ^( XML_ALIAS ^( EVALNAME_VK expression ) )
                    {
                    match(input,XML_ALIAS,FOLLOW_XML_ALIAS_in_xml_alias13172); 

                    match(input, Token.DOWN, null); 
                    match(input,EVALNAME_VK,FOLLOW_EVALNAME_VK_in_xml_alias13175); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_expression_in_xml_alias13177);
                    expression();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "xml_alias"



    // $ANTLR start "xml_param_version_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1512:1: xml_param_version_part : ^( VERSION_VK ( NO_VK VALUE_VK | expression ) ) ;
    public final void xml_param_version_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1513:5: ( ^( VERSION_VK ( NO_VK VALUE_VK | expression ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1513:10: ^( VERSION_VK ( NO_VK VALUE_VK | expression ) )
            {
            match(input,VERSION_VK,FOLLOW_VERSION_VK_in_xml_param_version_part13200); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1513:23: ( NO_VK VALUE_VK | expression )
            int alt468=2;
            int LA468_0 = input.LA(1);

            if ( (LA468_0==NO_VK) ) {
                alt468=1;
            }
            else if ( (LA468_0==EXPR||LA468_0==LOGIC_EXPR) ) {
                alt468=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 468, 0, input);

                throw nvae;

            }
            switch (alt468) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1513:24: NO_VK VALUE_VK
                    {
                    match(input,NO_VK,FOLLOW_NO_VK_in_xml_param_version_part13203); 

                    match(input,VALUE_VK,FOLLOW_VALUE_VK_in_xml_param_version_part13205); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1513:39: expression
                    {
                    pushFollow(FOLLOW_expression_in_xml_param_version_part13207);
                    expression();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "xml_param_version_part"



    // $ANTLR start "xmlroot_param_standalone_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1516:1: xmlroot_param_standalone_part : ^( STANDALONE_VK ( YES_VK | NO_VK ( VALUE_VK )? ) ) ;
    public final void xmlroot_param_standalone_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1517:5: ( ^( STANDALONE_VK ( YES_VK | NO_VK ( VALUE_VK )? ) ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1517:10: ^( STANDALONE_VK ( YES_VK | NO_VK ( VALUE_VK )? ) )
            {
            match(input,STANDALONE_VK,FOLLOW_STANDALONE_VK_in_xmlroot_param_standalone_part13230); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1517:26: ( YES_VK | NO_VK ( VALUE_VK )? )
            int alt470=2;
            int LA470_0 = input.LA(1);

            if ( (LA470_0==YES_VK) ) {
                alt470=1;
            }
            else if ( (LA470_0==NO_VK) ) {
                alt470=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 470, 0, input);

                throw nvae;

            }
            switch (alt470) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1517:27: YES_VK
                    {
                    match(input,YES_VK,FOLLOW_YES_VK_in_xmlroot_param_standalone_part13233); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1517:34: NO_VK ( VALUE_VK )?
                    {
                    match(input,NO_VK,FOLLOW_NO_VK_in_xmlroot_param_standalone_part13235); 

                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1517:40: ( VALUE_VK )?
                    int alt469=2;
                    int LA469_0 = input.LA(1);

                    if ( (LA469_0==VALUE_VK) ) {
                        alt469=1;
                    }
                    switch (alt469) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1517:40: VALUE_VK
                            {
                            match(input,VALUE_VK,FOLLOW_VALUE_VK_in_xmlroot_param_standalone_part13237); 

                            }
                            break;

                    }


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "xmlroot_param_standalone_part"



    // $ANTLR start "xmlserialize_param_enconding_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1520:1: xmlserialize_param_enconding_part : ^( ENCODING_VK expression ) ;
    public final void xmlserialize_param_enconding_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1521:5: ( ^( ENCODING_VK expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1521:10: ^( ENCODING_VK expression )
            {
            match(input,ENCODING_VK,FOLLOW_ENCODING_VK_in_xmlserialize_param_enconding_part13261); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_xmlserialize_param_enconding_part13263);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "xmlserialize_param_enconding_part"



    // $ANTLR start "xmlserialize_param_ident_part"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1524:1: xmlserialize_param_ident_part : ( NO_VK INDENT_VK | ^( INDENT_VK ( expression )? ) );
    public final void xmlserialize_param_ident_part() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1525:5: ( NO_VK INDENT_VK | ^( INDENT_VK ( expression )? ) )
            int alt472=2;
            int LA472_0 = input.LA(1);

            if ( (LA472_0==NO_VK) ) {
                alt472=1;
            }
            else if ( (LA472_0==INDENT_VK) ) {
                alt472=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 472, 0, input);

                throw nvae;

            }
            switch (alt472) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1525:10: NO_VK INDENT_VK
                    {
                    match(input,NO_VK,FOLLOW_NO_VK_in_xmlserialize_param_ident_part13284); 

                    match(input,INDENT_VK,FOLLOW_INDENT_VK_in_xmlserialize_param_ident_part13286); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1526:10: ^( INDENT_VK ( expression )? )
                    {
                    match(input,INDENT_VK,FOLLOW_INDENT_VK_in_xmlserialize_param_ident_part13298); 

                    if ( input.LA(1)==Token.DOWN ) {
                        match(input, Token.DOWN, null); 
                        // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1526:22: ( expression )?
                        int alt471=2;
                        int LA471_0 = input.LA(1);

                        if ( (LA471_0==EXPR||LA471_0==LOGIC_EXPR) ) {
                            alt471=1;
                        }
                        switch (alt471) {
                            case 1 :
                                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1526:22: expression
                                {
                                pushFollow(FOLLOW_expression_in_xmlserialize_param_ident_part13300);
                                expression();

                                state._fsp--;


                                }
                                break;

                        }


                        match(input, Token.UP, null); 
                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "xmlserialize_param_ident_part"



    // $ANTLR start "partition_extension_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1533:1: partition_extension_clause : ^( ( SUBPARTITION_VK | PARTITION_VK ) expression_list ) ;
    public final void partition_extension_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1534:5: ( ^( ( SUBPARTITION_VK | PARTITION_VK ) expression_list ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1534:10: ^( ( SUBPARTITION_VK | PARTITION_VK ) expression_list )
            {
            if ( input.LA(1)==PARTITION_VK||input.LA(1)==SUBPARTITION_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_list_in_partition_extension_clause13333);
            expression_list();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "partition_extension_clause"



    // $ANTLR start "alias"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1537:1: alias : ^( ALIAS ( char_set_name )? ID ) ;
    public final void alias() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1538:5: ( ^( ALIAS ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1538:10: ^( ALIAS ( char_set_name )? ID )
            {
            match(input,ALIAS,FOLLOW_ALIAS_in_alias13355); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1538:18: ( char_set_name )?
            int alt473=2;
            int LA473_0 = input.LA(1);

            if ( (LA473_0==CHAR_SET_NAME) ) {
                alt473=1;
            }
            switch (alt473) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1538:18: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_alias13357);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_alias13360); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "alias"



    // $ANTLR start "where_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1541:1: where_clause : ^( SQL92_RESERVED_WHERE expression ) ;
    public final void where_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1542:5: ( ^( SQL92_RESERVED_WHERE expression ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1542:10: ^( SQL92_RESERVED_WHERE expression )
            {
            match(input,SQL92_RESERVED_WHERE,FOLLOW_SQL92_RESERVED_WHERE_in_where_clause13382); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_where_clause13384);
            expression();

            state._fsp--;


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "where_clause"



    // $ANTLR start "into_clause"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1545:1: into_clause : ( ^( SQL92_RESERVED_INTO ( variable_name )+ ) | ^( BULK_VK ( variable_name )+ ) );
    public final void into_clause() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1546:5: ( ^( SQL92_RESERVED_INTO ( variable_name )+ ) | ^( BULK_VK ( variable_name )+ ) )
            int alt476=2;
            int LA476_0 = input.LA(1);

            if ( (LA476_0==SQL92_RESERVED_INTO) ) {
                alt476=1;
            }
            else if ( (LA476_0==BULK_VK) ) {
                alt476=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 476, 0, input);

                throw nvae;

            }
            switch (alt476) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1546:10: ^( SQL92_RESERVED_INTO ( variable_name )+ )
                    {
                    match(input,SQL92_RESERVED_INTO,FOLLOW_SQL92_RESERVED_INTO_in_into_clause13406); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1546:32: ( variable_name )+
                    int cnt474=0;
                    loop474:
                    do {
                        int alt474=2;
                        int LA474_0 = input.LA(1);

                        if ( (LA474_0==HOSTED_VARIABLE_NAME||LA474_0==VARIABLE_NAME) ) {
                            alt474=1;
                        }


                        switch (alt474) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1546:32: variable_name
                    	    {
                    	    pushFollow(FOLLOW_variable_name_in_into_clause13408);
                    	    variable_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt474 >= 1 ) break loop474;
                                EarlyExitException eee =
                                    new EarlyExitException(474, input);
                                throw eee;
                        }
                        cnt474++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1547:10: ^( BULK_VK ( variable_name )+ )
                    {
                    match(input,BULK_VK,FOLLOW_BULK_VK_in_into_clause13423); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1547:20: ( variable_name )+
                    int cnt475=0;
                    loop475:
                    do {
                        int alt475=2;
                        int LA475_0 = input.LA(1);

                        if ( (LA475_0==HOSTED_VARIABLE_NAME||LA475_0==VARIABLE_NAME) ) {
                            alt475=1;
                        }


                        switch (alt475) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1547:20: variable_name
                    	    {
                    	    pushFollow(FOLLOW_variable_name_in_into_clause13425);
                    	    variable_name();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt475 >= 1 ) break loop475;
                                EarlyExitException eee =
                                    new EarlyExitException(475, input);
                                throw eee;
                        }
                        cnt475++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "into_clause"



    // $ANTLR start "xml_column_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1554:1: xml_column_name : ^( XML_COLUMN_NAME ( char_set_name )? ID ) ;
    public final void xml_column_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1555:5: ( ^( XML_COLUMN_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1555:10: ^( XML_COLUMN_NAME ( char_set_name )? ID )
            {
            match(input,XML_COLUMN_NAME,FOLLOW_XML_COLUMN_NAME_in_xml_column_name13453); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1555:28: ( char_set_name )?
            int alt477=2;
            int LA477_0 = input.LA(1);

            if ( (LA477_0==CHAR_SET_NAME) ) {
                alt477=1;
            }
            switch (alt477) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1555:28: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_xml_column_name13455);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_xml_column_name13458); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "xml_column_name"



    // $ANTLR start "cost_class_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1558:1: cost_class_name : ^( COST_CLASS_NAME ( char_set_name )? ID ) ;
    public final void cost_class_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1559:5: ( ^( COST_CLASS_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1559:10: ^( COST_CLASS_NAME ( char_set_name )? ID )
            {
            match(input,COST_CLASS_NAME,FOLLOW_COST_CLASS_NAME_in_cost_class_name13480); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1559:28: ( char_set_name )?
            int alt478=2;
            int LA478_0 = input.LA(1);

            if ( (LA478_0==CHAR_SET_NAME) ) {
                alt478=1;
            }
            switch (alt478) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1559:28: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_cost_class_name13482);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_cost_class_name13485); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "cost_class_name"



    // $ANTLR start "attribute_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1562:1: attribute_name : ^( ATTRIBUTE_NAME ( char_set_name )? ID ) ;
    public final void attribute_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1563:5: ( ^( ATTRIBUTE_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1563:10: ^( ATTRIBUTE_NAME ( char_set_name )? ID )
            {
            match(input,ATTRIBUTE_NAME,FOLLOW_ATTRIBUTE_NAME_in_attribute_name13507); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1563:27: ( char_set_name )?
            int alt479=2;
            int LA479_0 = input.LA(1);

            if ( (LA479_0==CHAR_SET_NAME) ) {
                alt479=1;
            }
            switch (alt479) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1563:27: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_attribute_name13509);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_attribute_name13512); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "attribute_name"



    // $ANTLR start "savepoint_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1566:1: savepoint_name : ^( SAVEPOINT_NAME ( char_set_name )? ID ) ;
    public final void savepoint_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1567:5: ( ^( SAVEPOINT_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1567:10: ^( SAVEPOINT_NAME ( char_set_name )? ID )
            {
            match(input,SAVEPOINT_NAME,FOLLOW_SAVEPOINT_NAME_in_savepoint_name13534); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1567:27: ( char_set_name )?
            int alt480=2;
            int LA480_0 = input.LA(1);

            if ( (LA480_0==CHAR_SET_NAME) ) {
                alt480=1;
            }
            switch (alt480) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1567:27: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_savepoint_name13536);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_savepoint_name13539); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "savepoint_name"



    // $ANTLR start "rollback_segment_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1570:1: rollback_segment_name : ^( ROLLBACK_SEGMENT_NAME ( char_set_name )? ID ) ;
    public final void rollback_segment_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1571:5: ( ^( ROLLBACK_SEGMENT_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1571:10: ^( ROLLBACK_SEGMENT_NAME ( char_set_name )? ID )
            {
            match(input,ROLLBACK_SEGMENT_NAME,FOLLOW_ROLLBACK_SEGMENT_NAME_in_rollback_segment_name13561); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1571:34: ( char_set_name )?
            int alt481=2;
            int LA481_0 = input.LA(1);

            if ( (LA481_0==CHAR_SET_NAME) ) {
                alt481=1;
            }
            switch (alt481) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1571:34: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_rollback_segment_name13563);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_rollback_segment_name13566); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "rollback_segment_name"



    // $ANTLR start "table_var_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1575:1: table_var_name : ^( TABLE_VAR_NAME ( char_set_name )? ID ) ;
    public final void table_var_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1576:5: ( ^( TABLE_VAR_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1576:10: ^( TABLE_VAR_NAME ( char_set_name )? ID )
            {
            match(input,TABLE_VAR_NAME,FOLLOW_TABLE_VAR_NAME_in_table_var_name13589); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1576:27: ( char_set_name )?
            int alt482=2;
            int LA482_0 = input.LA(1);

            if ( (LA482_0==CHAR_SET_NAME) ) {
                alt482=1;
            }
            switch (alt482) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1576:27: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_table_var_name13591);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_table_var_name13594); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "table_var_name"



    // $ANTLR start "schema_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1579:1: schema_name : ^( SCHEMA_NAME ( char_set_name )? ID ) ;
    public final void schema_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1580:5: ( ^( SCHEMA_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1580:10: ^( SCHEMA_NAME ( char_set_name )? ID )
            {
            match(input,SCHEMA_NAME,FOLLOW_SCHEMA_NAME_in_schema_name13616); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1580:24: ( char_set_name )?
            int alt483=2;
            int LA483_0 = input.LA(1);

            if ( (LA483_0==CHAR_SET_NAME) ) {
                alt483=1;
            }
            switch (alt483) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1580:24: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_schema_name13618);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_schema_name13621); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "schema_name"



    // $ANTLR start "routine_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1583:1: routine_name : ^( ROUTINE_NAME ( char_set_name )? ( ID )+ ( link_name )? ) ;
    public final void routine_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1584:5: ( ^( ROUTINE_NAME ( char_set_name )? ( ID )+ ( link_name )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1584:10: ^( ROUTINE_NAME ( char_set_name )? ( ID )+ ( link_name )? )
            {
            match(input,ROUTINE_NAME,FOLLOW_ROUTINE_NAME_in_routine_name13643); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1584:25: ( char_set_name )?
            int alt484=2;
            int LA484_0 = input.LA(1);

            if ( (LA484_0==CHAR_SET_NAME) ) {
                alt484=1;
            }
            switch (alt484) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1584:25: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_routine_name13645);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1584:40: ( ID )+
            int cnt485=0;
            loop485:
            do {
                int alt485=2;
                int LA485_0 = input.LA(1);

                if ( (LA485_0==ID) ) {
                    alt485=1;
                }


                switch (alt485) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1584:40: ID
            	    {
            	    match(input,ID,FOLLOW_ID_in_routine_name13648); 

            	    }
            	    break;

            	default :
            	    if ( cnt485 >= 1 ) break loop485;
                        EarlyExitException eee =
                            new EarlyExitException(485, input);
                        throw eee;
                }
                cnt485++;
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1584:44: ( link_name )?
            int alt486=2;
            int LA486_0 = input.LA(1);

            if ( (LA486_0==LINK_NAME) ) {
                alt486=1;
            }
            switch (alt486) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1584:44: link_name
                    {
                    pushFollow(FOLLOW_link_name_in_routine_name13651);
                    link_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "routine_name"



    // $ANTLR start "package_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1587:1: package_name : ^( PACKAGE_NAME ( char_set_name )? ID ) ;
    public final void package_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1588:5: ( ^( PACKAGE_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1588:10: ^( PACKAGE_NAME ( char_set_name )? ID )
            {
            match(input,PACKAGE_NAME,FOLLOW_PACKAGE_NAME_in_package_name13674); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1588:25: ( char_set_name )?
            int alt487=2;
            int LA487_0 = input.LA(1);

            if ( (LA487_0==CHAR_SET_NAME) ) {
                alt487=1;
            }
            switch (alt487) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1588:25: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_package_name13676);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_package_name13679); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "package_name"



    // $ANTLR start "implementation_type_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1591:1: implementation_type_name : ^( IMPLEMENTATION_TYPE_NAME ( char_set_name )? ( ID )+ ) ;
    public final void implementation_type_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1592:5: ( ^( IMPLEMENTATION_TYPE_NAME ( char_set_name )? ( ID )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1592:10: ^( IMPLEMENTATION_TYPE_NAME ( char_set_name )? ( ID )+ )
            {
            match(input,IMPLEMENTATION_TYPE_NAME,FOLLOW_IMPLEMENTATION_TYPE_NAME_in_implementation_type_name13701); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1592:37: ( char_set_name )?
            int alt488=2;
            int LA488_0 = input.LA(1);

            if ( (LA488_0==CHAR_SET_NAME) ) {
                alt488=1;
            }
            switch (alt488) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1592:37: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_implementation_type_name13703);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1592:52: ( ID )+
            int cnt489=0;
            loop489:
            do {
                int alt489=2;
                int LA489_0 = input.LA(1);

                if ( (LA489_0==ID) ) {
                    alt489=1;
                }


                switch (alt489) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1592:52: ID
            	    {
            	    match(input,ID,FOLLOW_ID_in_implementation_type_name13706); 

            	    }
            	    break;

            	default :
            	    if ( cnt489 >= 1 ) break loop489;
                        EarlyExitException eee =
                            new EarlyExitException(489, input);
                        throw eee;
                }
                cnt489++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "implementation_type_name"



    // $ANTLR start "parameter_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1595:1: parameter_name : ^( PARAMETER_NAME ( char_set_name )? ID ) ;
    public final void parameter_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1596:5: ( ^( PARAMETER_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1596:10: ^( PARAMETER_NAME ( char_set_name )? ID )
            {
            match(input,PARAMETER_NAME,FOLLOW_PARAMETER_NAME_in_parameter_name13729); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1596:27: ( char_set_name )?
            int alt490=2;
            int LA490_0 = input.LA(1);

            if ( (LA490_0==CHAR_SET_NAME) ) {
                alt490=1;
            }
            switch (alt490) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1596:27: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_parameter_name13731);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_parameter_name13734); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "parameter_name"



    // $ANTLR start "reference_model_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1599:1: reference_model_name : ^( REFERENCE_MODEL_NAME ( char_set_name )? ID ) ;
    public final void reference_model_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1600:5: ( ^( REFERENCE_MODEL_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1600:10: ^( REFERENCE_MODEL_NAME ( char_set_name )? ID )
            {
            match(input,REFERENCE_MODEL_NAME,FOLLOW_REFERENCE_MODEL_NAME_in_reference_model_name13756); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1600:33: ( char_set_name )?
            int alt491=2;
            int LA491_0 = input.LA(1);

            if ( (LA491_0==CHAR_SET_NAME) ) {
                alt491=1;
            }
            switch (alt491) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1600:33: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_reference_model_name13758);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_reference_model_name13761); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "reference_model_name"



    // $ANTLR start "main_model_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1603:1: main_model_name : ^( MAIN_MODEL_NAME ( char_set_name )? ID ) ;
    public final void main_model_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1604:5: ( ^( MAIN_MODEL_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1604:10: ^( MAIN_MODEL_NAME ( char_set_name )? ID )
            {
            match(input,MAIN_MODEL_NAME,FOLLOW_MAIN_MODEL_NAME_in_main_model_name13783); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1604:28: ( char_set_name )?
            int alt492=2;
            int LA492_0 = input.LA(1);

            if ( (LA492_0==CHAR_SET_NAME) ) {
                alt492=1;
            }
            switch (alt492) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1604:28: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_main_model_name13785);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_main_model_name13788); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "main_model_name"



    // $ANTLR start "query_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1607:1: query_name : ^( QUERY_NAME ( char_set_name )? ID ) ;
    public final void query_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1608:5: ( ^( QUERY_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1608:10: ^( QUERY_NAME ( char_set_name )? ID )
            {
            match(input,QUERY_NAME,FOLLOW_QUERY_NAME_in_query_name13810); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1608:23: ( char_set_name )?
            int alt493=2;
            int LA493_0 = input.LA(1);

            if ( (LA493_0==CHAR_SET_NAME) ) {
                alt493=1;
            }
            switch (alt493) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1608:23: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_query_name13812);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_query_name13815); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "query_name"



    // $ANTLR start "constraint_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1611:1: constraint_name : ^( CONSTRAINT_NAME ( char_set_name )? ( ID )+ ( link_name )? ) ;
    public final void constraint_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1612:5: ( ^( CONSTRAINT_NAME ( char_set_name )? ( ID )+ ( link_name )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1612:10: ^( CONSTRAINT_NAME ( char_set_name )? ( ID )+ ( link_name )? )
            {
            match(input,CONSTRAINT_NAME,FOLLOW_CONSTRAINT_NAME_in_constraint_name13837); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1612:28: ( char_set_name )?
            int alt494=2;
            int LA494_0 = input.LA(1);

            if ( (LA494_0==CHAR_SET_NAME) ) {
                alt494=1;
            }
            switch (alt494) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1612:28: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_constraint_name13839);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1612:43: ( ID )+
            int cnt495=0;
            loop495:
            do {
                int alt495=2;
                int LA495_0 = input.LA(1);

                if ( (LA495_0==ID) ) {
                    alt495=1;
                }


                switch (alt495) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1612:43: ID
            	    {
            	    match(input,ID,FOLLOW_ID_in_constraint_name13842); 

            	    }
            	    break;

            	default :
            	    if ( cnt495 >= 1 ) break loop495;
                        EarlyExitException eee =
                            new EarlyExitException(495, input);
                        throw eee;
                }
                cnt495++;
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1612:47: ( link_name )?
            int alt496=2;
            int LA496_0 = input.LA(1);

            if ( (LA496_0==LINK_NAME) ) {
                alt496=1;
            }
            switch (alt496) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1612:47: link_name
                    {
                    pushFollow(FOLLOW_link_name_in_constraint_name13845);
                    link_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "constraint_name"



    // $ANTLR start "label_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1615:1: label_name : ^( LABEL_NAME ID ) ;
    public final void label_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1616:5: ( ^( LABEL_NAME ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1616:10: ^( LABEL_NAME ID )
            {
            match(input,LABEL_NAME,FOLLOW_LABEL_NAME_in_label_name13868); 

            match(input, Token.DOWN, null); 
            match(input,ID,FOLLOW_ID_in_label_name13870); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "label_name"



    // $ANTLR start "type_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1619:1: type_name : ^( TYPE_NAME ( ID )+ ) ;
    public final void type_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1620:5: ( ^( TYPE_NAME ( ID )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1620:10: ^( TYPE_NAME ( ID )+ )
            {
            match(input,TYPE_NAME,FOLLOW_TYPE_NAME_in_type_name13892); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1620:22: ( ID )+
            int cnt497=0;
            loop497:
            do {
                int alt497=2;
                int LA497_0 = input.LA(1);

                if ( (LA497_0==ID) ) {
                    alt497=1;
                }


                switch (alt497) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1620:22: ID
            	    {
            	    match(input,ID,FOLLOW_ID_in_type_name13894); 

            	    }
            	    break;

            	default :
            	    if ( cnt497 >= 1 ) break loop497;
                        EarlyExitException eee =
                            new EarlyExitException(497, input);
                        throw eee;
                }
                cnt497++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "type_name"



    // $ANTLR start "sequence_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1623:1: sequence_name : ^( SEQUENCE_NAME ( ID )+ ) ;
    public final void sequence_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1624:5: ( ^( SEQUENCE_NAME ( ID )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1624:10: ^( SEQUENCE_NAME ( ID )+ )
            {
            match(input,SEQUENCE_NAME,FOLLOW_SEQUENCE_NAME_in_sequence_name13917); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1624:26: ( ID )+
            int cnt498=0;
            loop498:
            do {
                int alt498=2;
                int LA498_0 = input.LA(1);

                if ( (LA498_0==ID) ) {
                    alt498=1;
                }


                switch (alt498) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1624:26: ID
            	    {
            	    match(input,ID,FOLLOW_ID_in_sequence_name13919); 

            	    }
            	    break;

            	default :
            	    if ( cnt498 >= 1 ) break loop498;
                        EarlyExitException eee =
                            new EarlyExitException(498, input);
                        throw eee;
                }
                cnt498++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "sequence_name"



    // $ANTLR start "exception_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1627:1: exception_name : ^( EXCEPTION_NAME ( char_set_name )? ( ID )+ ) ;
    public final void exception_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1628:5: ( ^( EXCEPTION_NAME ( char_set_name )? ( ID )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1628:10: ^( EXCEPTION_NAME ( char_set_name )? ( ID )+ )
            {
            match(input,EXCEPTION_NAME,FOLLOW_EXCEPTION_NAME_in_exception_name13942); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1628:27: ( char_set_name )?
            int alt499=2;
            int LA499_0 = input.LA(1);

            if ( (LA499_0==CHAR_SET_NAME) ) {
                alt499=1;
            }
            switch (alt499) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1628:27: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_exception_name13944);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1628:42: ( ID )+
            int cnt500=0;
            loop500:
            do {
                int alt500=2;
                int LA500_0 = input.LA(1);

                if ( (LA500_0==ID) ) {
                    alt500=1;
                }


                switch (alt500) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1628:42: ID
            	    {
            	    match(input,ID,FOLLOW_ID_in_exception_name13947); 

            	    }
            	    break;

            	default :
            	    if ( cnt500 >= 1 ) break loop500;
                        EarlyExitException eee =
                            new EarlyExitException(500, input);
                        throw eee;
                }
                cnt500++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "exception_name"



    // $ANTLR start "function_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1631:1: function_name : ^( FUNCTION_NAME ( char_set_name )? ( ID )+ ) ;
    public final void function_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1632:5: ( ^( FUNCTION_NAME ( char_set_name )? ( ID )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1632:10: ^( FUNCTION_NAME ( char_set_name )? ( ID )+ )
            {
            match(input,FUNCTION_NAME,FOLLOW_FUNCTION_NAME_in_function_name13970); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1632:26: ( char_set_name )?
            int alt501=2;
            int LA501_0 = input.LA(1);

            if ( (LA501_0==CHAR_SET_NAME) ) {
                alt501=1;
            }
            switch (alt501) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1632:26: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_function_name13972);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1632:41: ( ID )+
            int cnt502=0;
            loop502:
            do {
                int alt502=2;
                int LA502_0 = input.LA(1);

                if ( (LA502_0==ID) ) {
                    alt502=1;
                }


                switch (alt502) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1632:41: ID
            	    {
            	    match(input,ID,FOLLOW_ID_in_function_name13975); 

            	    }
            	    break;

            	default :
            	    if ( cnt502 >= 1 ) break loop502;
                        EarlyExitException eee =
                            new EarlyExitException(502, input);
                        throw eee;
                }
                cnt502++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "function_name"



    // $ANTLR start "procedure_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1635:1: procedure_name : ^( PROCEDURE_NAME ( char_set_name )? ( ID )+ ) ;
    public final void procedure_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1636:5: ( ^( PROCEDURE_NAME ( char_set_name )? ( ID )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1636:10: ^( PROCEDURE_NAME ( char_set_name )? ( ID )+ )
            {
            match(input,PROCEDURE_NAME,FOLLOW_PROCEDURE_NAME_in_procedure_name13998); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1636:27: ( char_set_name )?
            int alt503=2;
            int LA503_0 = input.LA(1);

            if ( (LA503_0==CHAR_SET_NAME) ) {
                alt503=1;
            }
            switch (alt503) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1636:27: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_procedure_name14000);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1636:42: ( ID )+
            int cnt504=0;
            loop504:
            do {
                int alt504=2;
                int LA504_0 = input.LA(1);

                if ( (LA504_0==ID) ) {
                    alt504=1;
                }


                switch (alt504) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1636:42: ID
            	    {
            	    match(input,ID,FOLLOW_ID_in_procedure_name14003); 

            	    }
            	    break;

            	default :
            	    if ( cnt504 >= 1 ) break loop504;
                        EarlyExitException eee =
                            new EarlyExitException(504, input);
                        throw eee;
                }
                cnt504++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "procedure_name"



    // $ANTLR start "trigger_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1639:1: trigger_name : ^( TRIGGER_NAME ( char_set_name )? ( ID )+ ) ;
    public final void trigger_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1640:5: ( ^( TRIGGER_NAME ( char_set_name )? ( ID )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1640:10: ^( TRIGGER_NAME ( char_set_name )? ( ID )+ )
            {
            match(input,TRIGGER_NAME,FOLLOW_TRIGGER_NAME_in_trigger_name14026); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1640:25: ( char_set_name )?
            int alt505=2;
            int LA505_0 = input.LA(1);

            if ( (LA505_0==CHAR_SET_NAME) ) {
                alt505=1;
            }
            switch (alt505) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1640:25: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_trigger_name14028);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1640:40: ( ID )+
            int cnt506=0;
            loop506:
            do {
                int alt506=2;
                int LA506_0 = input.LA(1);

                if ( (LA506_0==ID) ) {
                    alt506=1;
                }


                switch (alt506) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1640:40: ID
            	    {
            	    match(input,ID,FOLLOW_ID_in_trigger_name14031); 

            	    }
            	    break;

            	default :
            	    if ( cnt506 >= 1 ) break loop506;
                        EarlyExitException eee =
                            new EarlyExitException(506, input);
                        throw eee;
                }
                cnt506++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "trigger_name"



    // $ANTLR start "variable_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1643:1: variable_name : ( ^( HOSTED_VARIABLE_NAME ( char_set_name )? ( ID )+ ) | ^( VARIABLE_NAME ( char_set_name )? ( ID )+ ) );
    public final void variable_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1644:5: ( ^( HOSTED_VARIABLE_NAME ( char_set_name )? ( ID )+ ) | ^( VARIABLE_NAME ( char_set_name )? ( ID )+ ) )
            int alt511=2;
            int LA511_0 = input.LA(1);

            if ( (LA511_0==HOSTED_VARIABLE_NAME) ) {
                alt511=1;
            }
            else if ( (LA511_0==VARIABLE_NAME) ) {
                alt511=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 511, 0, input);

                throw nvae;

            }
            switch (alt511) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1644:10: ^( HOSTED_VARIABLE_NAME ( char_set_name )? ( ID )+ )
                    {
                    match(input,HOSTED_VARIABLE_NAME,FOLLOW_HOSTED_VARIABLE_NAME_in_variable_name14054); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1644:33: ( char_set_name )?
                    int alt507=2;
                    int LA507_0 = input.LA(1);

                    if ( (LA507_0==CHAR_SET_NAME) ) {
                        alt507=1;
                    }
                    switch (alt507) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1644:33: char_set_name
                            {
                            pushFollow(FOLLOW_char_set_name_in_variable_name14056);
                            char_set_name();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1644:48: ( ID )+
                    int cnt508=0;
                    loop508:
                    do {
                        int alt508=2;
                        int LA508_0 = input.LA(1);

                        if ( (LA508_0==ID) ) {
                            alt508=1;
                        }


                        switch (alt508) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1644:48: ID
                    	    {
                    	    match(input,ID,FOLLOW_ID_in_variable_name14059); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt508 >= 1 ) break loop508;
                                EarlyExitException eee =
                                    new EarlyExitException(508, input);
                                throw eee;
                        }
                        cnt508++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1645:10: ^( VARIABLE_NAME ( char_set_name )? ( ID )+ )
                    {
                    match(input,VARIABLE_NAME,FOLLOW_VARIABLE_NAME_in_variable_name14073); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1645:26: ( char_set_name )?
                    int alt509=2;
                    int LA509_0 = input.LA(1);

                    if ( (LA509_0==CHAR_SET_NAME) ) {
                        alt509=1;
                    }
                    switch (alt509) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1645:26: char_set_name
                            {
                            pushFollow(FOLLOW_char_set_name_in_variable_name14075);
                            char_set_name();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1645:41: ( ID )+
                    int cnt510=0;
                    loop510:
                    do {
                        int alt510=2;
                        int LA510_0 = input.LA(1);

                        if ( (LA510_0==ID) ) {
                            alt510=1;
                        }


                        switch (alt510) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1645:41: ID
                    	    {
                    	    match(input,ID,FOLLOW_ID_in_variable_name14078); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt510 >= 1 ) break loop510;
                                EarlyExitException eee =
                                    new EarlyExitException(510, input);
                                throw eee;
                        }
                        cnt510++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "variable_name"



    // $ANTLR start "index_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1648:1: index_name : ^( INDEX_NAME ( char_set_name )? ID ) ;
    public final void index_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1649:5: ( ^( INDEX_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1649:10: ^( INDEX_NAME ( char_set_name )? ID )
            {
            match(input,INDEX_NAME,FOLLOW_INDEX_NAME_in_index_name14101); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1649:23: ( char_set_name )?
            int alt512=2;
            int LA512_0 = input.LA(1);

            if ( (LA512_0==CHAR_SET_NAME) ) {
                alt512=1;
            }
            switch (alt512) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1649:23: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_index_name14103);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_index_name14106); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "index_name"



    // $ANTLR start "cursor_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1652:1: cursor_name : ^( CURSOR_NAME ( char_set_name )? ID ) ;
    public final void cursor_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1653:5: ( ^( CURSOR_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1653:10: ^( CURSOR_NAME ( char_set_name )? ID )
            {
            match(input,CURSOR_NAME,FOLLOW_CURSOR_NAME_in_cursor_name14128); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1653:24: ( char_set_name )?
            int alt513=2;
            int LA513_0 = input.LA(1);

            if ( (LA513_0==CHAR_SET_NAME) ) {
                alt513=1;
            }
            switch (alt513) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1653:24: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_cursor_name14130);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_cursor_name14133); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "cursor_name"



    // $ANTLR start "record_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1656:1: record_name : ^( RECORD_NAME ( char_set_name )? ID ) ;
    public final void record_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1657:5: ( ^( RECORD_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1657:10: ^( RECORD_NAME ( char_set_name )? ID )
            {
            match(input,RECORD_NAME,FOLLOW_RECORD_NAME_in_record_name14155); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1657:24: ( char_set_name )?
            int alt514=2;
            int LA514_0 = input.LA(1);

            if ( (LA514_0==CHAR_SET_NAME) ) {
                alt514=1;
            }
            switch (alt514) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1657:24: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_record_name14157);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_record_name14160); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "record_name"



    // $ANTLR start "collection_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1660:1: collection_name : ^( COLLECTION_NAME ( char_set_name )? ( ID )+ ) ;
    public final void collection_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1661:5: ( ^( COLLECTION_NAME ( char_set_name )? ( ID )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1661:10: ^( COLLECTION_NAME ( char_set_name )? ( ID )+ )
            {
            match(input,COLLECTION_NAME,FOLLOW_COLLECTION_NAME_in_collection_name14182); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1661:28: ( char_set_name )?
            int alt515=2;
            int LA515_0 = input.LA(1);

            if ( (LA515_0==CHAR_SET_NAME) ) {
                alt515=1;
            }
            switch (alt515) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1661:28: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_collection_name14184);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1661:43: ( ID )+
            int cnt516=0;
            loop516:
            do {
                int alt516=2;
                int LA516_0 = input.LA(1);

                if ( (LA516_0==ID) ) {
                    alt516=1;
                }


                switch (alt516) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1661:43: ID
            	    {
            	    match(input,ID,FOLLOW_ID_in_collection_name14187); 

            	    }
            	    break;

            	default :
            	    if ( cnt516 >= 1 ) break loop516;
                        EarlyExitException eee =
                            new EarlyExitException(516, input);
                        throw eee;
                }
                cnt516++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "collection_name"



    // $ANTLR start "link_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1664:1: link_name : ^( LINK_NAME ( char_set_name )? ID ) ;
    public final void link_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1665:5: ( ^( LINK_NAME ( char_set_name )? ID ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1665:10: ^( LINK_NAME ( char_set_name )? ID )
            {
            match(input,LINK_NAME,FOLLOW_LINK_NAME_in_link_name14210); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1665:22: ( char_set_name )?
            int alt517=2;
            int LA517_0 = input.LA(1);

            if ( (LA517_0==CHAR_SET_NAME) ) {
                alt517=1;
            }
            switch (alt517) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1665:22: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_link_name14212);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_link_name14215); 

            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "link_name"



    // $ANTLR start "column_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1668:1: column_name : ^( COLUMN_NAME ( char_set_name )? ( ID )+ ) ;
    public final void column_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1669:5: ( ^( COLUMN_NAME ( char_set_name )? ( ID )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1669:10: ^( COLUMN_NAME ( char_set_name )? ( ID )+ )
            {
            match(input,COLUMN_NAME,FOLLOW_COLUMN_NAME_in_column_name14237); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1669:24: ( char_set_name )?
            int alt518=2;
            int LA518_0 = input.LA(1);

            if ( (LA518_0==CHAR_SET_NAME) ) {
                alt518=1;
            }
            switch (alt518) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1669:24: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_column_name14239);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1669:39: ( ID )+
            int cnt519=0;
            loop519:
            do {
                int alt519=2;
                int LA519_0 = input.LA(1);

                if ( (LA519_0==ID) ) {
                    alt519=1;
                }


                switch (alt519) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1669:39: ID
            	    {
            	    match(input,ID,FOLLOW_ID_in_column_name14242); 

            	    }
            	    break;

            	default :
            	    if ( cnt519 >= 1 ) break loop519;
                        EarlyExitException eee =
                            new EarlyExitException(519, input);
                        throw eee;
                }
                cnt519++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "column_name"



    // $ANTLR start "tableview_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1672:1: tableview_name : ^( TABLEVIEW_NAME ( char_set_name )? ( ID )+ ( link_name )? ( partition_extension_clause )? ) ;
    public final void tableview_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1673:5: ( ^( TABLEVIEW_NAME ( char_set_name )? ( ID )+ ( link_name )? ( partition_extension_clause )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1673:10: ^( TABLEVIEW_NAME ( char_set_name )? ( ID )+ ( link_name )? ( partition_extension_clause )? )
            {
            match(input,TABLEVIEW_NAME,FOLLOW_TABLEVIEW_NAME_in_tableview_name14265); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1673:27: ( char_set_name )?
            int alt520=2;
            int LA520_0 = input.LA(1);

            if ( (LA520_0==CHAR_SET_NAME) ) {
                alt520=1;
            }
            switch (alt520) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1673:27: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_tableview_name14267);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1673:42: ( ID )+
            int cnt521=0;
            loop521:
            do {
                int alt521=2;
                int LA521_0 = input.LA(1);

                if ( (LA521_0==ID) ) {
                    alt521=1;
                }


                switch (alt521) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1673:42: ID
            	    {
            	    match(input,ID,FOLLOW_ID_in_tableview_name14270); 

            	    }
            	    break;

            	default :
            	    if ( cnt521 >= 1 ) break loop521;
                        EarlyExitException eee =
                            new EarlyExitException(521, input);
                        throw eee;
                }
                cnt521++;
            } while (true);


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1673:46: ( link_name )?
            int alt522=2;
            int LA522_0 = input.LA(1);

            if ( (LA522_0==LINK_NAME) ) {
                alt522=1;
            }
            switch (alt522) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1673:46: link_name
                    {
                    pushFollow(FOLLOW_link_name_in_tableview_name14273);
                    link_name();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1673:57: ( partition_extension_clause )?
            int alt523=2;
            int LA523_0 = input.LA(1);

            if ( (LA523_0==PARTITION_VK||LA523_0==SUBPARTITION_VK) ) {
                alt523=1;
            }
            switch (alt523) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1673:57: partition_extension_clause
                    {
                    pushFollow(FOLLOW_partition_extension_clause_in_tableview_name14276);
                    partition_extension_clause();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "tableview_name"



    // $ANTLR start "char_set_name"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1676:1: char_set_name : ^( CHAR_SET_NAME ( ID )+ ) ;
    public final void char_set_name() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1677:5: ( ^( CHAR_SET_NAME ( ID )+ ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1677:10: ^( CHAR_SET_NAME ( ID )+ )
            {
            match(input,CHAR_SET_NAME,FOLLOW_CHAR_SET_NAME_in_char_set_name14299); 

            match(input, Token.DOWN, null); 
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1677:26: ( ID )+
            int cnt524=0;
            loop524:
            do {
                int alt524=2;
                int LA524_0 = input.LA(1);

                if ( (LA524_0==ID) ) {
                    alt524=1;
                }


                switch (alt524) {
            	case 1 :
            	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1677:26: ID
            	    {
            	    match(input,ID,FOLLOW_ID_in_char_set_name14301); 

            	    }
            	    break;

            	default :
            	    if ( cnt524 >= 1 ) break loop524;
                        EarlyExitException eee =
                            new EarlyExitException(524, input);
                        throw eee;
                }
                cnt524++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "char_set_name"



    // $ANTLR start "function_argument"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1684:1: function_argument : ^( ARGUMENTS ( argument )* ) ;
    public final void function_argument() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1685:5: ( ^( ARGUMENTS ( argument )* ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1685:10: ^( ARGUMENTS ( argument )* )
            {
            match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_function_argument14328); 

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); 
                // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1685:22: ( argument )*
                loop525:
                do {
                    int alt525=2;
                    int LA525_0 = input.LA(1);

                    if ( (LA525_0==ARGUMENT) ) {
                        alt525=1;
                    }


                    switch (alt525) {
                	case 1 :
                	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1685:22: argument
                	    {
                	    pushFollow(FOLLOW_argument_in_function_argument14330);
                	    argument();

                	    state._fsp--;


                	    }
                	    break;

                	default :
                	    break loop525;
                    }
                } while (true);


                match(input, Token.UP, null); 
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "function_argument"



    // $ANTLR start "argument"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1688:1: argument : ^( ARGUMENT expression ( parameter_name )? ) ;
    public final void argument() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1689:5: ( ^( ARGUMENT expression ( parameter_name )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1689:10: ^( ARGUMENT expression ( parameter_name )? )
            {
            match(input,ARGUMENT,FOLLOW_ARGUMENT_in_argument14353); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_expression_in_argument14355);
            expression();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1689:32: ( parameter_name )?
            int alt526=2;
            int LA526_0 = input.LA(1);

            if ( (LA526_0==PARAMETER_NAME) ) {
                alt526=1;
            }
            switch (alt526) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1689:32: parameter_name
                    {
                    pushFollow(FOLLOW_parameter_name_in_argument14357);
                    parameter_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "argument"



    // $ANTLR start "type_spec"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1692:1: type_spec : ( ^( CUSTOM_TYPE type_name ( REF_VK )? ( PERCENT_ROWTYPE_VK | PERCENT_TYPE_VK )? ) | ^( NATIVE_DATATYPE native_datatype_element ( type_precision )? ( TIME_VK ( LOCAL_VK )? )? ) | ^( INTERVAL_DATATYPE ( YEAR_VK | DAY_VK ) ( MONTH_VK | SECOND_VK ) ( expression )* ) );
    public final void type_spec() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1693:5: ( ^( CUSTOM_TYPE type_name ( REF_VK )? ( PERCENT_ROWTYPE_VK | PERCENT_TYPE_VK )? ) | ^( NATIVE_DATATYPE native_datatype_element ( type_precision )? ( TIME_VK ( LOCAL_VK )? )? ) | ^( INTERVAL_DATATYPE ( YEAR_VK | DAY_VK ) ( MONTH_VK | SECOND_VK ) ( expression )* ) )
            int alt533=3;
            switch ( input.LA(1) ) {
            case CUSTOM_TYPE:
                {
                alt533=1;
                }
                break;
            case NATIVE_DATATYPE:
                {
                alt533=2;
                }
                break;
            case INTERVAL_DATATYPE:
                {
                alt533=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 533, 0, input);

                throw nvae;

            }

            switch (alt533) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1693:11: ^( CUSTOM_TYPE type_name ( REF_VK )? ( PERCENT_ROWTYPE_VK | PERCENT_TYPE_VK )? )
                    {
                    match(input,CUSTOM_TYPE,FOLLOW_CUSTOM_TYPE_in_type_spec14381); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_type_name_in_type_spec14383);
                    type_name();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1693:35: ( REF_VK )?
                    int alt527=2;
                    int LA527_0 = input.LA(1);

                    if ( (LA527_0==REF_VK) ) {
                        alt527=1;
                    }
                    switch (alt527) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1693:35: REF_VK
                            {
                            match(input,REF_VK,FOLLOW_REF_VK_in_type_spec14385); 

                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1693:43: ( PERCENT_ROWTYPE_VK | PERCENT_TYPE_VK )?
                    int alt528=2;
                    int LA528_0 = input.LA(1);

                    if ( ((LA528_0 >= PERCENT_ROWTYPE_VK && LA528_0 <= PERCENT_TYPE_VK)) ) {
                        alt528=1;
                    }
                    switch (alt528) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                            {
                            if ( (input.LA(1) >= PERCENT_ROWTYPE_VK && input.LA(1) <= PERCENT_TYPE_VK) ) {
                                input.consume();
                                state.errorRecovery=false;
                            }
                            else {
                                MismatchedSetException mse = new MismatchedSetException(null,input);
                                throw mse;
                            }


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1694:10: ^( NATIVE_DATATYPE native_datatype_element ( type_precision )? ( TIME_VK ( LOCAL_VK )? )? )
                    {
                    match(input,NATIVE_DATATYPE,FOLLOW_NATIVE_DATATYPE_in_type_spec14406); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_native_datatype_element_in_type_spec14408);
                    native_datatype_element();

                    state._fsp--;


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1694:52: ( type_precision )?
                    int alt529=2;
                    int LA529_0 = input.LA(1);

                    if ( (LA529_0==PRECISION) ) {
                        alt529=1;
                    }
                    switch (alt529) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1694:52: type_precision
                            {
                            pushFollow(FOLLOW_type_precision_in_type_spec14410);
                            type_precision();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1694:68: ( TIME_VK ( LOCAL_VK )? )?
                    int alt531=2;
                    int LA531_0 = input.LA(1);

                    if ( (LA531_0==TIME_VK) ) {
                        alt531=1;
                    }
                    switch (alt531) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1694:69: TIME_VK ( LOCAL_VK )?
                            {
                            match(input,TIME_VK,FOLLOW_TIME_VK_in_type_spec14414); 

                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1694:77: ( LOCAL_VK )?
                            int alt530=2;
                            int LA530_0 = input.LA(1);

                            if ( (LA530_0==LOCAL_VK) ) {
                                alt530=1;
                            }
                            switch (alt530) {
                                case 1 :
                                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1694:77: LOCAL_VK
                                    {
                                    match(input,LOCAL_VK,FOLLOW_LOCAL_VK_in_type_spec14416); 

                                    }
                                    break;

                            }


                            }
                            break;

                    }


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1695:10: ^( INTERVAL_DATATYPE ( YEAR_VK | DAY_VK ) ( MONTH_VK | SECOND_VK ) ( expression )* )
                    {
                    match(input,INTERVAL_DATATYPE,FOLLOW_INTERVAL_DATATYPE_in_type_spec14432); 

                    match(input, Token.DOWN, null); 
                    if ( input.LA(1)==DAY_VK||input.LA(1)==YEAR_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    if ( input.LA(1)==MONTH_VK||input.LA(1)==SECOND_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1695:68: ( expression )*
                    loop532:
                    do {
                        int alt532=2;
                        int LA532_0 = input.LA(1);

                        if ( (LA532_0==EXPR||LA532_0==LOGIC_EXPR) ) {
                            alt532=1;
                        }


                        switch (alt532) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1695:68: expression
                    	    {
                    	    pushFollow(FOLLOW_expression_in_type_spec14446);
                    	    expression();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop532;
                        }
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "type_spec"



    // $ANTLR start "type_precision"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1698:1: type_precision : ^( PRECISION constant ( constant )? ( CHAR_VK | BYTE_VK )? ( TIME_VK ( LOCAL_VK )? )? ) ;
    public final void type_precision() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1699:5: ( ^( PRECISION constant ( constant )? ( CHAR_VK | BYTE_VK )? ( TIME_VK ( LOCAL_VK )? )? ) )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1699:10: ^( PRECISION constant ( constant )? ( CHAR_VK | BYTE_VK )? ( TIME_VK ( LOCAL_VK )? )? )
            {
            match(input,PRECISION,FOLLOW_PRECISION_in_type_precision14469); 

            match(input, Token.DOWN, null); 
            pushFollow(FOLLOW_constant_in_type_precision14471);
            constant();

            state._fsp--;


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1699:31: ( constant )?
            int alt534=2;
            int LA534_0 = input.LA(1);

            if ( (LA534_0==APPROXIMATE_NUM_LIT||LA534_0==CHAR_STRING||LA534_0==EXACT_NUM_LIT||LA534_0==SQL92_RESERVED_DEFAULT||LA534_0==SQL92_RESERVED_FALSE||LA534_0==SQL92_RESERVED_NULL||LA534_0==SQL92_RESERVED_TRUE||LA534_0==UNSIGNED_INTEGER||LA534_0==DBTIMEZONE_VK||LA534_0==MAXVALUE_VK||LA534_0==MINVALUE_VK||LA534_0==SESSIONTIMEZONE_VK) ) {
                alt534=1;
            }
            switch (alt534) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1699:31: constant
                    {
                    pushFollow(FOLLOW_constant_in_type_precision14473);
                    constant();

                    state._fsp--;


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1699:41: ( CHAR_VK | BYTE_VK )?
            int alt535=2;
            int LA535_0 = input.LA(1);

            if ( (LA535_0==BYTE_VK||LA535_0==CHAR_VK) ) {
                alt535=1;
            }
            switch (alt535) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
                    {
                    if ( input.LA(1)==BYTE_VK||input.LA(1)==CHAR_VK ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1699:60: ( TIME_VK ( LOCAL_VK )? )?
            int alt537=2;
            int LA537_0 = input.LA(1);

            if ( (LA537_0==TIME_VK) ) {
                alt537=1;
            }
            switch (alt537) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1699:61: TIME_VK ( LOCAL_VK )?
                    {
                    match(input,TIME_VK,FOLLOW_TIME_VK_in_type_precision14484); 

                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1699:69: ( LOCAL_VK )?
                    int alt536=2;
                    int LA536_0 = input.LA(1);

                    if ( (LA536_0==LOCAL_VK) ) {
                        alt536=1;
                    }
                    switch (alt536) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1699:69: LOCAL_VK
                            {
                            match(input,LOCAL_VK,FOLLOW_LOCAL_VK_in_type_precision14486); 

                            }
                            break;

                    }


                    }
                    break;

            }


            match(input, Token.UP, null); 


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "type_precision"



    // $ANTLR start "native_datatype_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1702:1: native_datatype_element : ( BINARY_INTEGER_VK | PLS_INTEGER_VK | NATURAL_VK | BINARY_FLOAT_VK | BINARY_DOUBLE_VK | NATURALN_VK | POSITIVE_VK | POSITIVEN_VK | SIGNTYPE_VK | SIMPLE_INTEGER_VK | NVARCHAR2_VK | DEC_VK | INTEGER_VK | INT_VK | NUMERIC_VK | SMALLINT_VK | NUMBER_VK | DECIMAL_VK | DOUBLE_VK ( PRECISION_VK )? | FLOAT_VK | REAL_VK | NCHAR_VK | LONG_VK ( RAW_VK )? | CHAR_VK | CHARACTER_VK | VARCHAR2_VK | VARCHAR_VK | STRING_VK | RAW_VK | BOOLEAN_VK | DATE_VK | ROWID_VK | UROWID_VK | YEAR_VK | MONTH_VK | DAY_VK | HOUR_VK | MINUTE_VK | SECOND_VK | TIMEZONE_HOUR_VK | TIMEZONE_MINUTE_VK | TIMEZONE_REGION_VK | TIMEZONE_ABBR_VK | TIMESTAMP_VK | TIMESTAMP_UNCONSTRAINED_VK | TIMESTAMP_TZ_UNCONSTRAINED_VK | TIMESTAMP_LTZ_UNCONSTRAINED_VK | YMINTERVAL_UNCONSTRAINED_VK | DSINTERVAL_UNCONSTRAINED_VK | BFILE_VK | BLOB_VK | CLOB_VK | NCLOB_VK | MLSLABEL_VK );
    public final void native_datatype_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1703:5: ( BINARY_INTEGER_VK | PLS_INTEGER_VK | NATURAL_VK | BINARY_FLOAT_VK | BINARY_DOUBLE_VK | NATURALN_VK | POSITIVE_VK | POSITIVEN_VK | SIGNTYPE_VK | SIMPLE_INTEGER_VK | NVARCHAR2_VK | DEC_VK | INTEGER_VK | INT_VK | NUMERIC_VK | SMALLINT_VK | NUMBER_VK | DECIMAL_VK | DOUBLE_VK ( PRECISION_VK )? | FLOAT_VK | REAL_VK | NCHAR_VK | LONG_VK ( RAW_VK )? | CHAR_VK | CHARACTER_VK | VARCHAR2_VK | VARCHAR_VK | STRING_VK | RAW_VK | BOOLEAN_VK | DATE_VK | ROWID_VK | UROWID_VK | YEAR_VK | MONTH_VK | DAY_VK | HOUR_VK | MINUTE_VK | SECOND_VK | TIMEZONE_HOUR_VK | TIMEZONE_MINUTE_VK | TIMEZONE_REGION_VK | TIMEZONE_ABBR_VK | TIMESTAMP_VK | TIMESTAMP_UNCONSTRAINED_VK | TIMESTAMP_TZ_UNCONSTRAINED_VK | TIMESTAMP_LTZ_UNCONSTRAINED_VK | YMINTERVAL_UNCONSTRAINED_VK | DSINTERVAL_UNCONSTRAINED_VK | BFILE_VK | BLOB_VK | CLOB_VK | NCLOB_VK | MLSLABEL_VK )
            int alt540=54;
            switch ( input.LA(1) ) {
            case BINARY_INTEGER_VK:
                {
                alt540=1;
                }
                break;
            case PLS_INTEGER_VK:
                {
                alt540=2;
                }
                break;
            case NATURAL_VK:
                {
                alt540=3;
                }
                break;
            case BINARY_FLOAT_VK:
                {
                alt540=4;
                }
                break;
            case BINARY_DOUBLE_VK:
                {
                alt540=5;
                }
                break;
            case NATURALN_VK:
                {
                alt540=6;
                }
                break;
            case POSITIVE_VK:
                {
                alt540=7;
                }
                break;
            case POSITIVEN_VK:
                {
                alt540=8;
                }
                break;
            case SIGNTYPE_VK:
                {
                alt540=9;
                }
                break;
            case SIMPLE_INTEGER_VK:
                {
                alt540=10;
                }
                break;
            case NVARCHAR2_VK:
                {
                alt540=11;
                }
                break;
            case DEC_VK:
                {
                alt540=12;
                }
                break;
            case INTEGER_VK:
                {
                alt540=13;
                }
                break;
            case INT_VK:
                {
                alt540=14;
                }
                break;
            case NUMERIC_VK:
                {
                alt540=15;
                }
                break;
            case SMALLINT_VK:
                {
                alt540=16;
                }
                break;
            case NUMBER_VK:
                {
                alt540=17;
                }
                break;
            case DECIMAL_VK:
                {
                alt540=18;
                }
                break;
            case DOUBLE_VK:
                {
                alt540=19;
                }
                break;
            case FLOAT_VK:
                {
                alt540=20;
                }
                break;
            case REAL_VK:
                {
                alt540=21;
                }
                break;
            case NCHAR_VK:
                {
                alt540=22;
                }
                break;
            case LONG_VK:
                {
                alt540=23;
                }
                break;
            case CHAR_VK:
                {
                alt540=24;
                }
                break;
            case CHARACTER_VK:
                {
                alt540=25;
                }
                break;
            case VARCHAR2_VK:
                {
                alt540=26;
                }
                break;
            case VARCHAR_VK:
                {
                alt540=27;
                }
                break;
            case STRING_VK:
                {
                alt540=28;
                }
                break;
            case RAW_VK:
                {
                alt540=29;
                }
                break;
            case BOOLEAN_VK:
                {
                alt540=30;
                }
                break;
            case DATE_VK:
                {
                alt540=31;
                }
                break;
            case ROWID_VK:
                {
                alt540=32;
                }
                break;
            case UROWID_VK:
                {
                alt540=33;
                }
                break;
            case YEAR_VK:
                {
                alt540=34;
                }
                break;
            case MONTH_VK:
                {
                alt540=35;
                }
                break;
            case DAY_VK:
                {
                alt540=36;
                }
                break;
            case HOUR_VK:
                {
                alt540=37;
                }
                break;
            case MINUTE_VK:
                {
                alt540=38;
                }
                break;
            case SECOND_VK:
                {
                alt540=39;
                }
                break;
            case TIMEZONE_HOUR_VK:
                {
                alt540=40;
                }
                break;
            case TIMEZONE_MINUTE_VK:
                {
                alt540=41;
                }
                break;
            case TIMEZONE_REGION_VK:
                {
                alt540=42;
                }
                break;
            case TIMEZONE_ABBR_VK:
                {
                alt540=43;
                }
                break;
            case TIMESTAMP_VK:
                {
                alt540=44;
                }
                break;
            case TIMESTAMP_UNCONSTRAINED_VK:
                {
                alt540=45;
                }
                break;
            case TIMESTAMP_TZ_UNCONSTRAINED_VK:
                {
                alt540=46;
                }
                break;
            case TIMESTAMP_LTZ_UNCONSTRAINED_VK:
                {
                alt540=47;
                }
                break;
            case YMINTERVAL_UNCONSTRAINED_VK:
                {
                alt540=48;
                }
                break;
            case DSINTERVAL_UNCONSTRAINED_VK:
                {
                alt540=49;
                }
                break;
            case BFILE_VK:
                {
                alt540=50;
                }
                break;
            case BLOB_VK:
                {
                alt540=51;
                }
                break;
            case CLOB_VK:
                {
                alt540=52;
                }
                break;
            case NCLOB_VK:
                {
                alt540=53;
                }
                break;
            case MLSLABEL_VK:
                {
                alt540=54;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 540, 0, input);

                throw nvae;

            }

            switch (alt540) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1703:10: BINARY_INTEGER_VK
                    {
                    match(input,BINARY_INTEGER_VK,FOLLOW_BINARY_INTEGER_VK_in_native_datatype_element14510); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1704:10: PLS_INTEGER_VK
                    {
                    match(input,PLS_INTEGER_VK,FOLLOW_PLS_INTEGER_VK_in_native_datatype_element14521); 

                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1705:10: NATURAL_VK
                    {
                    match(input,NATURAL_VK,FOLLOW_NATURAL_VK_in_native_datatype_element14532); 

                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1706:10: BINARY_FLOAT_VK
                    {
                    match(input,BINARY_FLOAT_VK,FOLLOW_BINARY_FLOAT_VK_in_native_datatype_element14543); 

                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1707:10: BINARY_DOUBLE_VK
                    {
                    match(input,BINARY_DOUBLE_VK,FOLLOW_BINARY_DOUBLE_VK_in_native_datatype_element14554); 

                    }
                    break;
                case 6 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1708:10: NATURALN_VK
                    {
                    match(input,NATURALN_VK,FOLLOW_NATURALN_VK_in_native_datatype_element14565); 

                    }
                    break;
                case 7 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1709:10: POSITIVE_VK
                    {
                    match(input,POSITIVE_VK,FOLLOW_POSITIVE_VK_in_native_datatype_element14576); 

                    }
                    break;
                case 8 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1710:10: POSITIVEN_VK
                    {
                    match(input,POSITIVEN_VK,FOLLOW_POSITIVEN_VK_in_native_datatype_element14587); 

                    }
                    break;
                case 9 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1711:10: SIGNTYPE_VK
                    {
                    match(input,SIGNTYPE_VK,FOLLOW_SIGNTYPE_VK_in_native_datatype_element14598); 

                    }
                    break;
                case 10 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1712:10: SIMPLE_INTEGER_VK
                    {
                    match(input,SIMPLE_INTEGER_VK,FOLLOW_SIMPLE_INTEGER_VK_in_native_datatype_element14609); 

                    }
                    break;
                case 11 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1713:10: NVARCHAR2_VK
                    {
                    match(input,NVARCHAR2_VK,FOLLOW_NVARCHAR2_VK_in_native_datatype_element14620); 

                    }
                    break;
                case 12 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1714:10: DEC_VK
                    {
                    match(input,DEC_VK,FOLLOW_DEC_VK_in_native_datatype_element14631); 

                    }
                    break;
                case 13 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1715:10: INTEGER_VK
                    {
                    match(input,INTEGER_VK,FOLLOW_INTEGER_VK_in_native_datatype_element14642); 

                    }
                    break;
                case 14 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1716:10: INT_VK
                    {
                    match(input,INT_VK,FOLLOW_INT_VK_in_native_datatype_element14653); 

                    }
                    break;
                case 15 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1717:10: NUMERIC_VK
                    {
                    match(input,NUMERIC_VK,FOLLOW_NUMERIC_VK_in_native_datatype_element14664); 

                    }
                    break;
                case 16 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1718:10: SMALLINT_VK
                    {
                    match(input,SMALLINT_VK,FOLLOW_SMALLINT_VK_in_native_datatype_element14675); 

                    }
                    break;
                case 17 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1719:10: NUMBER_VK
                    {
                    match(input,NUMBER_VK,FOLLOW_NUMBER_VK_in_native_datatype_element14686); 

                    }
                    break;
                case 18 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1720:10: DECIMAL_VK
                    {
                    match(input,DECIMAL_VK,FOLLOW_DECIMAL_VK_in_native_datatype_element14697); 

                    }
                    break;
                case 19 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1721:10: DOUBLE_VK ( PRECISION_VK )?
                    {
                    match(input,DOUBLE_VK,FOLLOW_DOUBLE_VK_in_native_datatype_element14709); 

                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1721:20: ( PRECISION_VK )?
                    int alt538=2;
                    int LA538_0 = input.LA(1);

                    if ( (LA538_0==PRECISION_VK) ) {
                        alt538=1;
                    }
                    switch (alt538) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1721:20: PRECISION_VK
                            {
                            match(input,PRECISION_VK,FOLLOW_PRECISION_VK_in_native_datatype_element14711); 

                            }
                            break;

                    }


                    }
                    break;
                case 20 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1722:10: FLOAT_VK
                    {
                    match(input,FLOAT_VK,FOLLOW_FLOAT_VK_in_native_datatype_element14723); 

                    }
                    break;
                case 21 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1723:10: REAL_VK
                    {
                    match(input,REAL_VK,FOLLOW_REAL_VK_in_native_datatype_element14734); 

                    }
                    break;
                case 22 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1724:10: NCHAR_VK
                    {
                    match(input,NCHAR_VK,FOLLOW_NCHAR_VK_in_native_datatype_element14745); 

                    }
                    break;
                case 23 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1725:10: LONG_VK ( RAW_VK )?
                    {
                    match(input,LONG_VK,FOLLOW_LONG_VK_in_native_datatype_element14756); 

                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1725:18: ( RAW_VK )?
                    int alt539=2;
                    int LA539_0 = input.LA(1);

                    if ( (LA539_0==RAW_VK) ) {
                        alt539=1;
                    }
                    switch (alt539) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1725:18: RAW_VK
                            {
                            match(input,RAW_VK,FOLLOW_RAW_VK_in_native_datatype_element14758); 

                            }
                            break;

                    }


                    }
                    break;
                case 24 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1726:10: CHAR_VK
                    {
                    match(input,CHAR_VK,FOLLOW_CHAR_VK_in_native_datatype_element14770); 

                    }
                    break;
                case 25 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1727:10: CHARACTER_VK
                    {
                    match(input,CHARACTER_VK,FOLLOW_CHARACTER_VK_in_native_datatype_element14783); 

                    }
                    break;
                case 26 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1728:10: VARCHAR2_VK
                    {
                    match(input,VARCHAR2_VK,FOLLOW_VARCHAR2_VK_in_native_datatype_element14795); 

                    }
                    break;
                case 27 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1729:10: VARCHAR_VK
                    {
                    match(input,VARCHAR_VK,FOLLOW_VARCHAR_VK_in_native_datatype_element14806); 

                    }
                    break;
                case 28 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1730:10: STRING_VK
                    {
                    match(input,STRING_VK,FOLLOW_STRING_VK_in_native_datatype_element14817); 

                    }
                    break;
                case 29 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1731:10: RAW_VK
                    {
                    match(input,RAW_VK,FOLLOW_RAW_VK_in_native_datatype_element14828); 

                    }
                    break;
                case 30 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1732:10: BOOLEAN_VK
                    {
                    match(input,BOOLEAN_VK,FOLLOW_BOOLEAN_VK_in_native_datatype_element14839); 

                    }
                    break;
                case 31 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1733:10: DATE_VK
                    {
                    match(input,DATE_VK,FOLLOW_DATE_VK_in_native_datatype_element14850); 

                    }
                    break;
                case 32 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1734:10: ROWID_VK
                    {
                    match(input,ROWID_VK,FOLLOW_ROWID_VK_in_native_datatype_element14861); 

                    }
                    break;
                case 33 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1735:10: UROWID_VK
                    {
                    match(input,UROWID_VK,FOLLOW_UROWID_VK_in_native_datatype_element14872); 

                    }
                    break;
                case 34 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1736:10: YEAR_VK
                    {
                    match(input,YEAR_VK,FOLLOW_YEAR_VK_in_native_datatype_element14883); 

                    }
                    break;
                case 35 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1737:10: MONTH_VK
                    {
                    match(input,MONTH_VK,FOLLOW_MONTH_VK_in_native_datatype_element14894); 

                    }
                    break;
                case 36 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1738:10: DAY_VK
                    {
                    match(input,DAY_VK,FOLLOW_DAY_VK_in_native_datatype_element14905); 

                    }
                    break;
                case 37 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1739:10: HOUR_VK
                    {
                    match(input,HOUR_VK,FOLLOW_HOUR_VK_in_native_datatype_element14916); 

                    }
                    break;
                case 38 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1740:10: MINUTE_VK
                    {
                    match(input,MINUTE_VK,FOLLOW_MINUTE_VK_in_native_datatype_element14927); 

                    }
                    break;
                case 39 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1741:10: SECOND_VK
                    {
                    match(input,SECOND_VK,FOLLOW_SECOND_VK_in_native_datatype_element14938); 

                    }
                    break;
                case 40 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1742:10: TIMEZONE_HOUR_VK
                    {
                    match(input,TIMEZONE_HOUR_VK,FOLLOW_TIMEZONE_HOUR_VK_in_native_datatype_element14949); 

                    }
                    break;
                case 41 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1743:10: TIMEZONE_MINUTE_VK
                    {
                    match(input,TIMEZONE_MINUTE_VK,FOLLOW_TIMEZONE_MINUTE_VK_in_native_datatype_element14960); 

                    }
                    break;
                case 42 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1744:10: TIMEZONE_REGION_VK
                    {
                    match(input,TIMEZONE_REGION_VK,FOLLOW_TIMEZONE_REGION_VK_in_native_datatype_element14971); 

                    }
                    break;
                case 43 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1745:10: TIMEZONE_ABBR_VK
                    {
                    match(input,TIMEZONE_ABBR_VK,FOLLOW_TIMEZONE_ABBR_VK_in_native_datatype_element14982); 

                    }
                    break;
                case 44 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1746:10: TIMESTAMP_VK
                    {
                    match(input,TIMESTAMP_VK,FOLLOW_TIMESTAMP_VK_in_native_datatype_element14993); 

                    }
                    break;
                case 45 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1747:10: TIMESTAMP_UNCONSTRAINED_VK
                    {
                    match(input,TIMESTAMP_UNCONSTRAINED_VK,FOLLOW_TIMESTAMP_UNCONSTRAINED_VK_in_native_datatype_element15004); 

                    }
                    break;
                case 46 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1748:10: TIMESTAMP_TZ_UNCONSTRAINED_VK
                    {
                    match(input,TIMESTAMP_TZ_UNCONSTRAINED_VK,FOLLOW_TIMESTAMP_TZ_UNCONSTRAINED_VK_in_native_datatype_element15015); 

                    }
                    break;
                case 47 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1749:10: TIMESTAMP_LTZ_UNCONSTRAINED_VK
                    {
                    match(input,TIMESTAMP_LTZ_UNCONSTRAINED_VK,FOLLOW_TIMESTAMP_LTZ_UNCONSTRAINED_VK_in_native_datatype_element15026); 

                    }
                    break;
                case 48 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1750:10: YMINTERVAL_UNCONSTRAINED_VK
                    {
                    match(input,YMINTERVAL_UNCONSTRAINED_VK,FOLLOW_YMINTERVAL_UNCONSTRAINED_VK_in_native_datatype_element15037); 

                    }
                    break;
                case 49 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1751:10: DSINTERVAL_UNCONSTRAINED_VK
                    {
                    match(input,DSINTERVAL_UNCONSTRAINED_VK,FOLLOW_DSINTERVAL_UNCONSTRAINED_VK_in_native_datatype_element15048); 

                    }
                    break;
                case 50 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1752:10: BFILE_VK
                    {
                    match(input,BFILE_VK,FOLLOW_BFILE_VK_in_native_datatype_element15059); 

                    }
                    break;
                case 51 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1753:10: BLOB_VK
                    {
                    match(input,BLOB_VK,FOLLOW_BLOB_VK_in_native_datatype_element15070); 

                    }
                    break;
                case 52 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1754:10: CLOB_VK
                    {
                    match(input,CLOB_VK,FOLLOW_CLOB_VK_in_native_datatype_element15081); 

                    }
                    break;
                case 53 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1755:10: NCLOB_VK
                    {
                    match(input,NCLOB_VK,FOLLOW_NCLOB_VK_in_native_datatype_element15092); 

                    }
                    break;
                case 54 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1756:10: MLSLABEL_VK
                    {
                    match(input,MLSLABEL_VK,FOLLOW_MLSLABEL_VK_in_native_datatype_element15103); 

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "native_datatype_element"



    // $ANTLR start "general_element"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1759:1: general_element : ( ^( CASCATED_ELEMENT ( general_element )+ ) | ^( HOSTED_VARIABLE_ROUTINE_CALL routine_name function_argument ) | ^( HOSTED_VARIABLE ( char_set_name )? ( ID )+ ) | ^( ROUTINE_CALL routine_name function_argument ) | ^( ANY_ELEMENT ( char_set_name )? ( ID )+ ) );
    public final void general_element() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1760:5: ( ^( CASCATED_ELEMENT ( general_element )+ ) | ^( HOSTED_VARIABLE_ROUTINE_CALL routine_name function_argument ) | ^( HOSTED_VARIABLE ( char_set_name )? ( ID )+ ) | ^( ROUTINE_CALL routine_name function_argument ) | ^( ANY_ELEMENT ( char_set_name )? ( ID )+ ) )
            int alt546=5;
            switch ( input.LA(1) ) {
            case CASCATED_ELEMENT:
                {
                alt546=1;
                }
                break;
            case HOSTED_VARIABLE_ROUTINE_CALL:
                {
                alt546=2;
                }
                break;
            case HOSTED_VARIABLE:
                {
                alt546=3;
                }
                break;
            case ROUTINE_CALL:
                {
                alt546=4;
                }
                break;
            case ANY_ELEMENT:
                {
                alt546=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 546, 0, input);

                throw nvae;

            }

            switch (alt546) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1760:10: ^( CASCATED_ELEMENT ( general_element )+ )
                    {
                    match(input,CASCATED_ELEMENT,FOLLOW_CASCATED_ELEMENT_in_general_element15124); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1760:29: ( general_element )+
                    int cnt541=0;
                    loop541:
                    do {
                        int alt541=2;
                        int LA541_0 = input.LA(1);

                        if ( (LA541_0==ANY_ELEMENT||LA541_0==CASCATED_ELEMENT||LA541_0==HOSTED_VARIABLE||LA541_0==HOSTED_VARIABLE_ROUTINE_CALL||LA541_0==ROUTINE_CALL) ) {
                            alt541=1;
                        }


                        switch (alt541) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1760:29: general_element
                    	    {
                    	    pushFollow(FOLLOW_general_element_in_general_element15126);
                    	    general_element();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt541 >= 1 ) break loop541;
                                EarlyExitException eee =
                                    new EarlyExitException(541, input);
                                throw eee;
                        }
                        cnt541++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 2 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1761:10: ^( HOSTED_VARIABLE_ROUTINE_CALL routine_name function_argument )
                    {
                    match(input,HOSTED_VARIABLE_ROUTINE_CALL,FOLLOW_HOSTED_VARIABLE_ROUTINE_CALL_in_general_element15140); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_routine_name_in_general_element15142);
                    routine_name();

                    state._fsp--;


                    pushFollow(FOLLOW_function_argument_in_general_element15144);
                    function_argument();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 3 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1762:10: ^( HOSTED_VARIABLE ( char_set_name )? ( ID )+ )
                    {
                    match(input,HOSTED_VARIABLE,FOLLOW_HOSTED_VARIABLE_in_general_element15157); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1762:28: ( char_set_name )?
                    int alt542=2;
                    int LA542_0 = input.LA(1);

                    if ( (LA542_0==CHAR_SET_NAME) ) {
                        alt542=1;
                    }
                    switch (alt542) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1762:28: char_set_name
                            {
                            pushFollow(FOLLOW_char_set_name_in_general_element15159);
                            char_set_name();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1762:43: ( ID )+
                    int cnt543=0;
                    loop543:
                    do {
                        int alt543=2;
                        int LA543_0 = input.LA(1);

                        if ( (LA543_0==ID) ) {
                            alt543=1;
                        }


                        switch (alt543) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1762:43: ID
                    	    {
                    	    match(input,ID,FOLLOW_ID_in_general_element15162); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt543 >= 1 ) break loop543;
                                EarlyExitException eee =
                                    new EarlyExitException(543, input);
                                throw eee;
                        }
                        cnt543++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;
                case 4 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1763:10: ^( ROUTINE_CALL routine_name function_argument )
                    {
                    match(input,ROUTINE_CALL,FOLLOW_ROUTINE_CALL_in_general_element15176); 

                    match(input, Token.DOWN, null); 
                    pushFollow(FOLLOW_routine_name_in_general_element15178);
                    routine_name();

                    state._fsp--;


                    pushFollow(FOLLOW_function_argument_in_general_element15180);
                    function_argument();

                    state._fsp--;


                    match(input, Token.UP, null); 


                    }
                    break;
                case 5 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1764:10: ^( ANY_ELEMENT ( char_set_name )? ( ID )+ )
                    {
                    match(input,ANY_ELEMENT,FOLLOW_ANY_ELEMENT_in_general_element15193); 

                    match(input, Token.DOWN, null); 
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1764:24: ( char_set_name )?
                    int alt544=2;
                    int LA544_0 = input.LA(1);

                    if ( (LA544_0==CHAR_SET_NAME) ) {
                        alt544=1;
                    }
                    switch (alt544) {
                        case 1 :
                            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1764:24: char_set_name
                            {
                            pushFollow(FOLLOW_char_set_name_in_general_element15195);
                            char_set_name();

                            state._fsp--;


                            }
                            break;

                    }


                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1764:39: ( ID )+
                    int cnt545=0;
                    loop545:
                    do {
                        int alt545=2;
                        int LA545_0 = input.LA(1);

                        if ( (LA545_0==ID) ) {
                            alt545=1;
                        }


                        switch (alt545) {
                    	case 1 :
                    	    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1764:39: ID
                    	    {
                    	    match(input,ID,FOLLOW_ID_in_general_element15198); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt545 >= 1 ) break loop545;
                                EarlyExitException eee =
                                    new EarlyExitException(545, input);
                                throw eee;
                        }
                        cnt545++;
                    } while (true);


                    match(input, Token.UP, null); 


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "general_element"



    // $ANTLR start "constant"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1771:1: constant : ( UNSIGNED_INTEGER | EXACT_NUM_LIT | APPROXIMATE_NUM_LIT | CHAR_STRING | SQL92_RESERVED_NULL | SQL92_RESERVED_TRUE | SQL92_RESERVED_FALSE | DBTIMEZONE_VK | SESSIONTIMEZONE_VK | MINVALUE_VK | MAXVALUE_VK | SQL92_RESERVED_DEFAULT );
    public final void constant() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1772:5: ( UNSIGNED_INTEGER | EXACT_NUM_LIT | APPROXIMATE_NUM_LIT | CHAR_STRING | SQL92_RESERVED_NULL | SQL92_RESERVED_TRUE | SQL92_RESERVED_FALSE | DBTIMEZONE_VK | SESSIONTIMEZONE_VK | MINVALUE_VK | MAXVALUE_VK | SQL92_RESERVED_DEFAULT )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:
            {
            if ( input.LA(1)==APPROXIMATE_NUM_LIT||input.LA(1)==CHAR_STRING||input.LA(1)==EXACT_NUM_LIT||input.LA(1)==SQL92_RESERVED_DEFAULT||input.LA(1)==SQL92_RESERVED_FALSE||input.LA(1)==SQL92_RESERVED_NULL||input.LA(1)==SQL92_RESERVED_TRUE||input.LA(1)==UNSIGNED_INTEGER||input.LA(1)==DBTIMEZONE_VK||input.LA(1)==MAXVALUE_VK||input.LA(1)==MINVALUE_VK||input.LA(1)==SESSIONTIMEZONE_VK ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "constant"



    // $ANTLR start "id"
    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1788:1: id : ( char_set_name )? ID ;
    public final void id() throws RecognitionException {
        try {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1789:5: ( ( char_set_name )? ID )
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1789:10: ( char_set_name )? ID
            {
            // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1789:10: ( char_set_name )?
            int alt547=2;
            int LA547_0 = input.LA(1);

            if ( (LA547_0==CHAR_SET_NAME) ) {
                alt547=1;
            }
            switch (alt547) {
                case 1 :
                    // F:\\workspace\\SQLParser\\src\\com\\polytech\\diploma\\OracleSQL\\PLSQLWalker.g:1789:10: char_set_name
                    {
                    pushFollow(FOLLOW_char_set_name_in_id15368);
                    char_set_name();

                    state._fsp--;


                    }
                    break;

            }


            match(input,ID,FOLLOW_ID_in_id15371); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "id"

    // Delegated rules


    protected DFA297 dfa297 = new DFA297(this);
    static final String DFA297_eotS =
        "\16\uffff";
    static final String DFA297_eofS =
        "\16\uffff";
    static final String DFA297_minS =
        "\1\u0094\1\2\1\uffff\1\u00c1\1\2\1\u00b5\1\2\1\3\1\u0129\1\u00c1"+
        "\1\3\2\uffff\1\u0129";
    static final String DFA297_maxS =
        "\1\u0284\1\2\1\uffff\1\u00c1\1\2\1\u0129\1\2\2\u0129\1\u025f\1\u0129"+
        "\2\uffff\1\u0129";
    static final String DFA297_acceptS =
        "\2\uffff\1\3\10\uffff\1\1\1\2\1\uffff";
    static final String DFA297_specialS =
        "\16\uffff}>";
    static final String[] DFA297_transitionS = {
            "\1\1\u01ef\uffff\1\2",
            "\1\3",
            "",
            "\1\4",
            "\1\5",
            "\1\6\163\uffff\1\7",
            "\1\10",
            "\1\11\u0125\uffff\1\7",
            "\1\12",
            "\1\14\107\uffff\1\13\130\uffff\1\13\u00fc\uffff\1\14",
            "\1\15\u0125\uffff\1\12",
            "",
            "",
            "\1\7"
    };

    static final short[] DFA297_eot = DFA.unpackEncodedString(DFA297_eotS);
    static final short[] DFA297_eof = DFA.unpackEncodedString(DFA297_eofS);
    static final char[] DFA297_min = DFA.unpackEncodedStringToUnsignedChars(DFA297_minS);
    static final char[] DFA297_max = DFA.unpackEncodedStringToUnsignedChars(DFA297_maxS);
    static final short[] DFA297_accept = DFA.unpackEncodedString(DFA297_acceptS);
    static final short[] DFA297_special = DFA.unpackEncodedString(DFA297_specialS);
    static final short[][] DFA297_transition;

    static {
        int numStates = DFA297_transitionS.length;
        DFA297_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA297_transition[i] = DFA.unpackEncodedString(DFA297_transitionS[i]);
        }
    }

    class DFA297 extends DFA {

        public DFA297(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 297;
            this.eot = DFA297_eot;
            this.eof = DFA297_eof;
            this.min = DFA297_min;
            this.max = DFA297_max;
            this.accept = DFA297_accept;
            this.special = DFA297_special;
            this.transition = DFA297_transition;
        }
        public String getDescription() {
            return "1036:1: update_set_elements : ( ^( ASSIGN column_name expression ) | ^( ASSIGN ( column_name )+ subquery ) | ^( VALUE_VK ( char_set_name )? ID expression ) );";
        }
    }
 

    public static final BitSet FOLLOW_COMPILATION_UNIT_in_compilation_unit49 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_unit_statement_in_compilation_unit51 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0xC003E40000000000L,0x000000000003F03FL});
    public static final BitSet FOLLOW_SQL_SCRIPT_in_sql_script74 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_serveroutput_declaration_in_sql_script76 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
    public static final BitSet FOLLOW_seq_of_statements_in_sql_script79 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SET_SERVEROUTPUT_in_serveroutput_declaration101 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_serveroutput_declaration103 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_alter_function_in_unit_statement128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_alter_package_in_unit_statement139 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_alter_procedure_in_unit_statement150 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_alter_sequence_in_unit_statement161 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_alter_trigger_in_unit_statement172 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_alter_type_in_unit_statement183 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_create_function_body_in_unit_statement194 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_create_procedure_body_in_unit_statement205 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_create_package_in_unit_statement216 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_create_sequence_in_unit_statement227 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_create_trigger_in_unit_statement238 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_create_type_in_unit_statement249 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_drop_function_in_unit_statement260 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_drop_package_in_unit_statement271 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_drop_procedure_in_unit_statement282 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_drop_sequence_in_unit_statement293 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_drop_trigger_in_unit_statement304 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_drop_type_in_unit_statement315 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DROP_FUNCTION_in_drop_function340 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_function_name_in_drop_function342 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ALTER_FUNCTION_in_alter_function364 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_function_name_in_alter_function366 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000008000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_DEBUG_VK_in_alter_function368 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_REUSE_VK_in_alter_function371 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_compiler_parameters_clause_in_alter_function374 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_CREATE_FUNCTION_in_create_function_body397 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_REPLACE_VK_in_create_function_body399 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
    public static final BitSet FOLLOW_function_name_in_create_function_body402 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_type_spec_in_create_function_body404 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_PARAMETERS_in_create_function_body407 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_parameter_in_create_function_body409 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_invoker_rights_clause_in_create_function_body425 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L,0x0002000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000008000000000L,0x0000000800000000L,0x0000000000000000L,0x0000000000000000L,0x0300000000000000L,0x0400000000000000L});
    public static final BitSet FOLLOW_parallel_enable_clause_in_create_function_body428 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0002000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000008000000000L,0x0000000800000000L,0x0000000000000000L,0x0000000000000000L,0x0300000000000000L,0x0400000000000000L});
    public static final BitSet FOLLOW_result_cache_clause_in_create_function_body431 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0002000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000800000000L,0x0000000000000000L,0x0000000000000000L,0x0300000000000000L,0x0400000000000000L});
    public static final BitSet FOLLOW_DETERMINISTIC_VK_in_create_function_body434 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0002000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0300000000000000L,0x0400000000000000L});
    public static final BitSet FOLLOW_USING_MODE_in_create_function_body455 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_PIPELINED_VK_in_create_function_body457 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000001000L,0x0000000000000000L,0x0000100000000000L});
    public static final BitSet FOLLOW_AGGREGATE_VK_in_create_function_body460 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000100000000000L});
    public static final BitSet FOLLOW_implementation_type_name_in_create_function_body463 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CALL_MODE_in_create_function_body484 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_PIPELINED_VK_in_create_function_body486 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
    public static final BitSet FOLLOW_call_spec_in_create_function_body489 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_BODY_MODE_in_create_function_body510 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_PIPELINED_VK_in_create_function_body512 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x4080000000000000L,0x10E0068000100082L});
    public static final BitSet FOLLOW_declare_spec_in_create_function_body515 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x4080000000000000L,0x10E0068000100082L});
    public static final BitSet FOLLOW_body_in_create_function_body518 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PARALLEL_ENABLE_VK_in_parallel_enable_clause566 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_partition_by_clause_in_parallel_enable_clause568 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PARTITION_VK_in_partition_by_clause591 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_partition_by_clause593 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L,0x0000000000000000L,0x0000000000000000L,0x0000000400000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ANY_in_partition_by_clause613 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
    public static final BitSet FOLLOW_HASH_VK_in_partition_by_clause633 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_COLUMNS_in_partition_by_clause636 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_partition_by_clause638 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_RANGE_VK_in_partition_by_clause661 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_COLUMNS_in_partition_by_clause664 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_partition_by_clause666 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_streaming_clause_in_partition_by_clause698 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_RESULT_CACHE_VK_in_result_cache_clause730 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_relies_on_part_in_result_cache_clause732 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_RELIES_ON_VK_in_relies_on_part755 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_tableview_name_in_relies_on_part757 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
    public static final BitSet FOLLOW_STREAMING_CLAUSE_in_streaming_clause780 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_streaming_clause782 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_streaming_clause788 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
    public static final BitSet FOLLOW_COLUMNS_in_streaming_clause791 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_streaming_clause793 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_DROP_PACKAGE_in_drop_package822 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_package_name_in_drop_package824 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000010000000000L});
    public static final BitSet FOLLOW_BODY_VK_in_drop_package826 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ALTER_PACKAGE_in_alter_package849 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_package_name_in_alter_package851 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000010000000000L,0x0000008000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L,0x0000002000000000L,0x0000000000800000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_DEBUG_VK_in_alter_package853 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000010000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L,0x0000002000000000L,0x0000000000800000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_REUSE_VK_in_alter_package856 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000010000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L,0x0000000000000000L,0x0000000000800000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_compiler_parameters_clause_in_alter_package885 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_CREATE_PACKAGE_SPEC_in_create_package908 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_REPLACE_VK_in_create_package910 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_package_name_in_create_package913 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000008000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x10E0070002100080L});
    public static final BitSet FOLLOW_invoker_rights_clause_in_create_package916 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x10E0070002100080L});
    public static final BitSet FOLLOW_package_obj_spec_in_create_package919 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x10E0070002100080L});
    public static final BitSet FOLLOW_CREATE_PACKAGE_BODY_in_create_package934 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_REPLACE_VK_in_create_package936 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_package_name_in_create_package939 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x4000000000000000L,0x10E8060000100082L});
    public static final BitSet FOLLOW_package_obj_body_in_create_package942 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x4000000000000000L,0x10E8060000100082L});
    public static final BitSet FOLLOW_seq_of_statements_in_create_package945 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_variable_declaration_in_package_obj_spec969 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_subtype_declaration_in_package_obj_spec981 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_cursor_declaration_in_package_obj_spec993 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_exception_declaration_in_package_obj_spec1005 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_record_declaration_in_package_obj_spec1017 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_table_declaration_in_package_obj_spec1029 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_procedure_spec_in_package_obj_spec1041 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_function_spec_in_package_obj_spec1053 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PROCEDURE_SPEC_in_procedure_spec1075 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_procedure_name_in_procedure_spec1077 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_PARAMETERS_in_procedure_spec1080 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_parameter_in_procedure_spec1082 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_CALL_MODE_in_procedure_spec1100 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_call_spec_in_procedure_spec1102 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_FUNCTION_SPEC_in_function_spec1133 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_function_name_in_function_spec1135 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
    public static final BitSet FOLLOW_type_spec_in_function_spec1138 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_SELF_VK_in_function_spec1140 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_PARAMETERS_in_function_spec1144 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_parameter_in_function_spec1146 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_CALL_MODE_in_function_spec1168 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_call_spec_in_function_spec1170 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EXTERNAL_VK_in_function_spec1191 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_function_spec1193 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_variable_declaration_in_package_obj_body1240 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_subtype_declaration_in_package_obj_body1253 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_cursor_declaration_in_package_obj_body1266 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_exception_declaration_in_package_obj_body1279 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_record_declaration_in_package_obj_body1292 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_table_declaration_in_package_obj_body1304 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_create_procedure_body_in_package_obj_body1316 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_create_function_body_in_package_obj_body1328 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DROP_PROCEDURE_in_drop_procedure1356 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_procedure_name_in_drop_procedure1358 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ALTER_PROCEDURE_in_alter_procedure1380 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_procedure_name_in_alter_procedure1382 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000008000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_DEBUG_VK_in_alter_procedure1384 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_REUSE_VK_in_alter_procedure1387 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_compiler_parameters_clause_in_alter_procedure1390 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_CREATE_PROCEDURE_in_create_procedure_body1413 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_REPLACE_VK_in_create_procedure_body1415 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
    public static final BitSet FOLLOW_procedure_name_in_create_procedure_body1418 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_PARAMETERS_in_create_procedure_body1421 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_parameter_in_create_procedure_body1423 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_invoker_rights_clause_in_create_procedure_body1427 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000800L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0300000000000000L});
    public static final BitSet FOLLOW_EXTERNAL_VK_in_create_procedure_body1447 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CALL_MODE_in_create_procedure_body1467 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_call_spec_in_create_procedure_body1469 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_BODY_MODE_in_create_procedure_body1490 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_declare_spec_in_create_procedure_body1492 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x4080000000000000L,0x10E0068000100082L});
    public static final BitSet FOLLOW_body_in_create_procedure_body1495 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_DROP_TRIGGER_in_drop_trigger1545 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_trigger_name_in_drop_trigger1547 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ALTER_TRIGGER_in_alter_trigger1569 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_trigger_name_in_alter_trigger1571 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x2010008000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002100000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_set_in_alter_trigger1591 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_RENAME_VK_in_alter_trigger1615 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_trigger_name_in_alter_trigger1617 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_DEBUG_VK_in_alter_trigger1637 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_REUSE_VK_in_alter_trigger1640 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_compiler_parameters_clause_in_alter_trigger1643 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_CREATE_TRIGGER_in_create_trigger1689 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_REPLACE_VK_in_create_trigger1691 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
    public static final BitSet FOLLOW_trigger_name_in_create_trigger1694 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000008L,0x2010000000000100L,0x0000000000080000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x1100000000000000L,0x0001000100000000L});
    public static final BitSet FOLLOW_simple_dml_trigger_in_create_trigger1710 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000008L,0x2010000000000100L,0x0000000000080000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x1100000000000000L,0x0000000100000000L});
    public static final BitSet FOLLOW_compound_dml_trigger_in_create_trigger1713 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000008L,0x2010000000000100L,0x0000000000080000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L,0x0000000100000000L});
    public static final BitSet FOLLOW_non_dml_trigger_in_create_trigger1716 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000008L,0x2010000000000100L,0x0000000000080000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
    public static final BitSet FOLLOW_trigger_follows_clause_in_create_trigger1731 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000008L,0x2010000000000100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
    public static final BitSet FOLLOW_trigger_when_clause_in_create_trigger1741 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L,0x0000000000000100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
    public static final BitSet FOLLOW_trigger_body_in_create_trigger1744 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_FOLLOWS_VK_in_trigger_follows_clause1766 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_trigger_name_in_trigger_follows_clause1768 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
    public static final BitSet FOLLOW_SQL92_RESERVED_WHEN_in_trigger_when_clause1791 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_trigger_when_clause1793 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SIMPLE_DML_in_simple_dml_trigger1816 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_simple_dml_trigger1818 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000008000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000800400L});
    public static final BitSet FOLLOW_FOR_EACH_ROW_in_simple_dml_trigger1826 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000008000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
    public static final BitSet FOLLOW_referencing_clause_in_simple_dml_trigger1829 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
    public static final BitSet FOLLOW_dml_event_clause_in_simple_dml_trigger1832 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_COMPOUND_DML_in_compound_dml_trigger1854 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_referencing_clause_in_compound_dml_trigger1856 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
    public static final BitSet FOLLOW_dml_event_clause_in_compound_dml_trigger1859 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_NON_DML_in_non_dml_trigger1881 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_non_dml_trigger1883 = new BitSet(new long[]{0x0000000000000000L,0x0040000401020020L,0x0000000004204000L,0x0020006100000008L,0x0000000000080000L,0x0000001800000000L,0x0000000000000080L,0x0100000100000000L,0x0000000000001100L,0x0020000101000000L});
    public static final BitSet FOLLOW_non_dml_event_in_non_dml_trigger1889 = new BitSet(new long[]{0x0000000000000000L,0x0040000401020020L,0x0000000004204000L,0x0020006100000008L,0x0000000000080000L,0x0000001800000000L,0x0000000000000080L,0x0180000100000000L,0x0000000000001100L,0x0020000101000000L});
    public static final BitSet FOLLOW_DATABASE_VK_in_non_dml_trigger1893 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_schema_name_in_non_dml_trigger1895 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
    public static final BitSet FOLLOW_SCHEMA_VK_in_non_dml_trigger1898 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_COMPOUND_VK_in_trigger_body1921 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_trigger_name_in_trigger_body1923 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x403000C000000000L,0x10E0068000100082L});
    public static final BitSet FOLLOW_declare_spec_in_trigger_body1925 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x403000C000000000L,0x10E0068000100082L});
    public static final BitSet FOLLOW_timing_point_section_in_trigger_body1928 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x003000C000000000L});
    public static final BitSet FOLLOW_CALL_VK_in_trigger_body1942 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_routine_name_in_trigger_body1944 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000080000L});
    public static final BitSet FOLLOW_function_argument_in_trigger_body1946 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_BODY_MODE_in_trigger_body1961 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_block_in_trigger_body1963 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_BEFORE_STATEMENT_in_timing_point_section1985 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_block_in_timing_point_section1987 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_BEFORE_EACH_ROW_in_timing_point_section2000 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_block_in_timing_point_section2002 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_AFTER_STATEMENT_in_timing_point_section2015 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_block_in_timing_point_section2017 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_AFTER_EACH_ROW_in_timing_point_section2030 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_block_in_timing_point_section2032 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ALTER_in_non_dml_event2053 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ANALYZE_VK_in_non_dml_event2064 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ASSOCIATE_VK_in_non_dml_event2075 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
    public static final BitSet FOLLOW_STATISTICS_VK_in_non_dml_event2077 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_AUDIT_VK_in_non_dml_event2088 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_COMMENT_VK_in_non_dml_event2099 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQL92_RESERVED_CREATE_in_non_dml_event2110 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DISASSOCIATE_VK_in_non_dml_event2121 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
    public static final BitSet FOLLOW_STATISTICS_VK_in_non_dml_event2123 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQL92_RESERVED_DROP_in_non_dml_event2134 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQL92_RESERVED_GRANT_in_non_dml_event2145 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NOAUDIT_VK_in_non_dml_event2156 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RENAME_VK_in_non_dml_event2167 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQL92_RESERVED_REVOKE_in_non_dml_event2178 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TRUNCATE_VK_in_non_dml_event2189 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DDL_VK_in_non_dml_event2200 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_STARTUP_VK_in_non_dml_event2211 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SHUTDOWN_VK_in_non_dml_event2222 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DB_ROLE_CHANGE_VK_in_non_dml_event2233 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_LOGON_VK_in_non_dml_event2244 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_LOGOFF_VK_in_non_dml_event2255 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SERVERERROR_VK_in_non_dml_event2266 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SUSPEND_VK_in_non_dml_event2277 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DATABASE_VK_in_non_dml_event2288 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SCHEMA_VK_in_non_dml_event2299 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FOLLOWS_VK_in_non_dml_event2310 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DML_EVENT_in_dml_event_clause2331 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_dml_event_element_in_dml_event_clause2333 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ON_in_dml_event_clause2337 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_tableview_name_in_dml_event_clause2339 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
    public static final BitSet FOLLOW_dml_event_nested_clause_in_dml_event_clause2341 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_DML_EVENT_ELEMENT_in_dml_event_element2367 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_dml_event_element2369 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
    public static final BitSet FOLLOW_COLUMNS_in_dml_event_element2378 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_dml_event_element2380 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_NESTED_VK_in_dml_event_nested_clause2404 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_tableview_name_in_dml_event_nested_clause2406 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_REFERENCING_VK_in_referencing_clause2428 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_referencing_element_in_referencing_clause2430 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000040008000040L});
    public static final BitSet FOLLOW_set_in_referencing_element2453 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_alias_in_referencing_element2461 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_DROP_TYPE_in_drop_type2488 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_name_in_drop_type2490 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000010000000000L,0x0000000000000000L,0x0000000000200000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_BODY_VK_in_drop_type2492 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000200000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_FORCE_VK_in_drop_type2495 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_VALIDATE_VK_in_drop_type2498 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ALTER_TYPE_in_alter_type2521 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_name_in_alter_type2523 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000200000000L,0x0000000000000000L,0x0000000000000000L,0x00000B0000000000L,0x0000000040000000L});
    public static final BitSet FOLLOW_REPLACE_VK_in_alter_type2544 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_OBJECT_MEMBERS_in_alter_type2547 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_element_spec_in_alter_type2549 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
    public static final BitSet FOLLOW_invoker_rights_clause_in_alter_type2553 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ALTER_ATTRIBUTE_in_alter_type2575 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_alter_type2577 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
    public static final BitSet FOLLOW_ATTRIBUTES_in_alter_type2586 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_attribute_definition_in_alter_type2588 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0004000000000000L});
    public static final BitSet FOLLOW_ALTER_METHOD_in_alter_type2611 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_alter_method_element_in_alter_type2613 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000100000000000L});
    public static final BitSet FOLLOW_alter_collection_clauses_in_alter_type2634 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
    public static final BitSet FOLLOW_modifier_clause_in_alter_type2653 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
    public static final BitSet FOLLOW_COMPILE_VK_in_alter_type2673 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_DEBUG_VK_in_alter_type2682 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_REUSE_VK_in_alter_type2685 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_compiler_parameters_clause_in_alter_type2688 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_dependent_handling_clause_in_alter_type2719 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ALTER_METHOD_ELEMENT_in_alter_method_element2753 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_alter_method_element2755 = new BitSet(new long[]{0x0000000000000008L,0x0002000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000240000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
    public static final BitSet FOLLOW_map_order_function_spec_in_alter_method_element2761 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000200000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
    public static final BitSet FOLLOW_subprogram_spec_in_alter_method_element2764 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ATTRIBUTE_in_attribute_definition2787 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_attribute_name_in_attribute_definition2789 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_type_spec_in_attribute_definition2791 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ALTER_COLLECTION_in_alter_collection_clauses2814 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_TYPE_VK_in_alter_collection_clauses2835 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_spec_in_alter_collection_clauses2837 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_LIMIT_VK_in_alter_collection_clauses2858 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_alter_collection_clauses2860 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_DEPENDENT_HANDLING_in_dependent_handling_clause2907 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_INVALIDATE_VK_in_dependent_handling_clause2927 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CASCADE_VK_in_dependent_handling_clause2947 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_CONVERT_VK_in_dependent_handling_clause2975 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_NOT_in_dependent_handling_clause3002 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
    public static final BitSet FOLLOW_INCLUDING_VK_in_dependent_handling_clause3005 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EXCEPTIONS_VK_in_dependent_exceptions_part3091 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_FORCE_VK_in_dependent_exceptions_part3093 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
    public static final BitSet FOLLOW_tableview_name_in_dependent_exceptions_part3096 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CREATE_TYPE_BODY_in_create_type3120 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_REPLACE_VK_in_create_type3122 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0040000000000000L});
    public static final BitSet FOLLOW_type_name_in_create_type3125 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
    public static final BitSet FOLLOW_TYPE_BODY_ELEMENTS_in_create_type3128 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_body_elements_in_create_type3130 = new BitSet(new long[]{0x0000000000000008L,0x0002000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000240000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
    public static final BitSet FOLLOW_CREATE_TYPE_SPEC_in_create_type3145 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_REPLACE_VK_in_create_type3147 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0040000000000000L});
    public static final BitSet FOLLOW_type_name_in_create_type3150 = new BitSet(new long[]{0x0000000000000408L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
    public static final BitSet FOLLOW_CHAR_STRING_in_create_type3152 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
    public static final BitSet FOLLOW_object_type_def_in_create_type3155 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_OBJECT_TYPE_DEF_in_object_type_def3178 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_object_as_part_in_object_type_def3181 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000002000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000440000000L});
    public static final BitSet FOLLOW_object_under_part_in_object_type_def3183 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000002000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000440000000L});
    public static final BitSet FOLLOW_invoker_rights_clause_in_object_type_def3186 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000002000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000440000000L});
    public static final BitSet FOLLOW_sqlj_object_type_in_object_type_def3202 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000440000000L});
    public static final BitSet FOLLOW_modifier_clause_in_object_type_def3205 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000440000000L});
    public static final BitSet FOLLOW_OBJECT_MEMBERS_in_object_type_def3209 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_element_spec_in_object_type_def3211 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
    public static final BitSet FOLLOW_OBJECT_AS_in_object_as_part3237 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_OBJECT_VK_in_object_as_part3240 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_varray_type_def_in_object_as_part3242 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_nested_table_type_def_in_object_as_part3244 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_UNDER_VK_in_object_under_part3267 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_spec_in_object_under_part3269 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_NESTED_TABLE_TYPE_DEF_in_nested_table_type_def3291 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_spec_in_nested_table_type_def3293 = new BitSet(new long[]{0x0000000000000008L,0x0000100000000000L});
    public static final BitSet FOLLOW_SQL92_RESERVED_NULL_in_nested_table_type_def3295 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_JAVA_VK_in_sqlj_object_type3319 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_sqlj_object_type3321 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000010000000L,0x0000000000000000L,0x0000000000000000L,0x0000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_set_in_sqlj_object_type3323 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_map_order_func_declaration_in_type_body_elements3350 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_subprog_decl_in_type_in_type_body_elements3361 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_map_order_func_declaration3382 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_create_function_body_in_map_order_func_declaration3388 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_subprog_decl_in_type3410 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_create_procedure_body_in_subprog_decl_in_type3433 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_create_function_body_in_subprog_decl_in_type3452 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_constructor_declaration_in_subprog_decl_in_type3471 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CONSTRUCTOR_VK_in_constructor_declaration3516 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_spec_in_constructor_declaration3518 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0040000000004000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_FINAL_VK_in_constructor_declaration3520 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0040000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_INSTANTIABLE_VK_in_constructor_declaration3523 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_PARAMETERS_in_constructor_declaration3527 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_elements_parameter_in_constructor_declaration3529 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_CALL_MODE_in_constructor_declaration3552 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_call_spec_in_constructor_declaration3554 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_BODY_MODE_in_constructor_declaration3575 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_declare_spec_in_constructor_declaration3577 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x4080000000000000L,0x10E0068000100082L});
    public static final BitSet FOLLOW_body_in_constructor_declaration3580 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MODIFIER_in_modifier_clause3630 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_SQL92_RESERVED_NOT_in_modifier_clause3632 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0040000000004000L,0x0000000000000000L,0x0000000800000000L});
    public static final BitSet FOLLOW_set_in_modifier_clause3635 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EXTERNAL_VK_in_sqlj_object_type_attr3663 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_sqlj_object_type_attr3665 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ELEMENT_SPEC_in_element_spec3687 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_element_spec_options_in_element_spec3689 = new BitSet(new long[]{0x0000000000000008L,0x0002000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000240000000000L,0x0000000000000000L,0x0000000000001000L,0x0000000000000000L,0x0000000004000000L,0x2000000000000000L,0x0000000040400000L});
    public static final BitSet FOLLOW_modifier_clause_in_element_spec3692 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_pragma_clause_in_element_spec3695 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_subprogram_spec_in_element_spec_options3717 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_constructor_spec_in_element_spec_options3728 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_map_order_function_spec_in_element_spec_options3739 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FIELD_SPEC_in_element_spec_options3751 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_id_in_element_spec_options3753 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_type_spec_in_element_spec_options3755 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_sqlj_object_type_attr_in_element_spec_options3757 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_subprogram_spec3780 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_procedure_spec_in_subprogram_spec3803 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_function_spec_in_subprogram_spec3822 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CONSTRUCTOR_SPEC_in_constructor_spec3867 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_spec_in_constructor_spec3869 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0040000000004000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_FINAL_VK_in_constructor_spec3871 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0040000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_INSTANTIABLE_VK_in_constructor_spec3874 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_PARAMETERS_in_constructor_spec3878 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_elements_parameter_in_constructor_spec3880 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_constructor_call_mode_in_constructor_spec3884 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CALL_MODE_in_constructor_call_mode3907 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_call_spec_in_constructor_call_mode3909 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_map_order_function_spec3931 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_function_spec_in_map_order_function_spec3937 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PRAGMA_VK_in_pragma_clause3959 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_pragma_elements_in_pragma_clause3961 = new BitSet(new long[]{0x0000000000000008L,0x0000000000100000L,0x0020000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_id_in_pragma_elements3983 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQL92_RESERVED_DEFAULT_in_pragma_elements3994 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PARAMETER_in_type_elements_parameter4015 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_parameter_name_in_type_elements_parameter4017 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_type_spec_in_type_elements_parameter4019 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_DROP_SEQUENCE_in_drop_sequence4046 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_sequence_name_in_drop_sequence4048 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ALTER_SEQUENCE_in_alter_sequence4070 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_sequence_name_in_alter_sequence4072 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000200000000000L,0x0000000040000000L,0x0000800000000000L,0x0008080000000000L,0x0000000000007500L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0004001000000000L});
    public static final BitSet FOLLOW_sequence_spec_in_alter_sequence4074 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000200000000000L,0x0000000040000000L,0x0000800000000000L,0x0008080000000000L,0x0000000000007500L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0004001000000000L});
    public static final BitSet FOLLOW_CREATE_SEQUENCE_in_create_sequence4097 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_sequence_name_in_create_sequence4099 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000200000000000L,0x0000000040000000L,0x0000800000000000L,0x0008080000000000L,0x0000000000007500L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0004001000000000L});
    public static final BitSet FOLLOW_sequence_spec_in_create_sequence4101 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000200000000000L,0x0000000040000000L,0x0000800000000000L,0x0008080000000000L,0x0000000000007500L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0004001000000000L});
    public static final BitSet FOLLOW_START_VK_in_sequence_spec4126 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UNSIGNED_INTEGER_in_sequence_spec4128 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_INCREMENT_VK_in_sequence_spec4141 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UNSIGNED_INTEGER_in_sequence_spec4143 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MAXVALUE_VK_in_sequence_spec4156 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UNSIGNED_INTEGER_in_sequence_spec4158 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MINVALUE_VK_in_sequence_spec4171 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UNSIGNED_INTEGER_in_sequence_spec4173 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CACHE_VK_in_sequence_spec4186 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UNSIGNED_INTEGER_in_sequence_spec4188 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_NOMAXVALUE_VK_in_sequence_spec4200 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NOMINVALUE_VK_in_sequence_spec4211 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_CYCLE_VK_in_sequence_spec4222 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NOCYCLE_VK_in_sequence_spec4233 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NOCACHE_VK_in_sequence_spec4244 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ORDER_VK_in_sequence_spec4255 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NOORDER_VK_in_sequence_spec4266 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_AUTHID_VK_in_invoker_rights_clause4293 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_invoker_rights_clause4295 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_COMPILER_PARAMETER_in_compiler_parameters_clause4321 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_ASSIGN_in_compiler_parameters_clause4324 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_id_in_compiler_parameters_clause4326 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_compiler_parameters_clause4328 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_LANGUAGE_VK_in_call_spec4351 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_java_spec_in_call_spec4355 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_c_spec_in_call_spec4359 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_JAVA_VK_in_java_spec4385 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_CHAR_STRING_in_java_spec4387 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_C_VK_in_c_spec4409 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_CHAR_STRING_in_c_spec4411 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000008000L,0x0000000000000000L,0x0000000004000000L});
    public static final BitSet FOLLOW_CONTEXT_VK_in_c_spec4414 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
    public static final BitSet FOLLOW_LIBRARY_VK_in_c_spec4418 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_id_in_c_spec4420 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_c_agent_in_clause_in_c_spec4423 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000010000000000L});
    public static final BitSet FOLLOW_c_parameters_clause_in_c_spec4426 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_AGENT_VK_in_c_agent_in_clause4449 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_c_agent_in_clause4451 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_PARAMETERS_VK_in_c_parameters_clause4474 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_THREE_DOTS_in_c_parameters_clause4477 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_expression_in_c_parameters_clause4479 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_PARAMETER_in_parameter4505 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_parameter_name_in_parameter4507 = new BitSet(new long[]{0x0000000000000008L,0x0000002000000000L,0x0000000000000000L,0x0000000020000000L,0x0210000000000000L,0x4000000000000000L,0x0000000400000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
    public static final BitSet FOLLOW_type_spec_in_parameter4518 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
    public static final BitSet FOLLOW_default_value_part_in_parameter4521 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_DEFAULT_VALUE_in_default_value_part4544 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_default_value_part4546 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_variable_declaration_in_declare_spec4573 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_subtype_declaration_in_declare_spec4585 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_cursor_declaration_in_declare_spec4597 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_exception_declaration_in_declare_spec4609 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_pragma_declaration_in_declare_spec4621 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_record_declaration_in_declare_spec4633 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_table_declaration_in_declare_spec4645 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_create_procedure_body_in_declare_spec4657 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_create_function_body_in_declare_spec4669 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_VARIABLE_DECLARE_in_variable_declaration4691 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_variable_name_in_variable_declaration4693 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_type_spec_in_variable_declaration4695 = new BitSet(new long[]{0x0000000000000008L,0x0000100000000000L,0x0000000000000000L,0x0000000000000800L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
    public static final BitSet FOLLOW_CONSTANT_VK_in_variable_declaration4697 = new BitSet(new long[]{0x0000000000000008L,0x0000100000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
    public static final BitSet FOLLOW_SQL92_RESERVED_NULL_in_variable_declaration4700 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
    public static final BitSet FOLLOW_default_value_part_in_variable_declaration4703 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SUBTYPE_DECLARE_in_subtype_declaration4732 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_name_in_subtype_declaration4734 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_type_spec_in_subtype_declaration4736 = new BitSet(new long[]{0x0000000000000008L,0x0000100000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
    public static final BitSet FOLLOW_SQL92_RESERVED_NULL_in_subtype_declaration4738 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
    public static final BitSet FOLLOW_subtype_range_in_subtype_declaration4741 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_RANGE_VK_in_subtype_range4766 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_subtype_range4768 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_CURSOR_DECLARE_in_cursor_declaration4792 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_cursor_name_in_cursor_declaration4794 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_type_spec_in_cursor_declaration4796 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_select_statement_in_cursor_declaration4799 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_PARAMETERS_in_cursor_declaration4803 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_parameter_spec_in_cursor_declaration4805 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_PARAMETER_in_parameter_spec4830 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_parameter_name_in_parameter_spec4832 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
    public static final BitSet FOLLOW_type_spec_in_parameter_spec4834 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
    public static final BitSet FOLLOW_default_value_part_in_parameter_spec4837 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EXCEPTION_DECLARE_in_exception_declaration4861 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_exception_name_in_exception_declaration4863 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PRAGMA_DECLARE_in_pragma_declaration4898 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_SERIALLY_REUSABLE_VK_in_pragma_declaration4918 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_AUTONOMOUS_TRANSACTION_VK_in_pragma_declaration4938 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EXCEPTION_INIT_VK_in_pragma_declaration4958 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_exception_name_in_pragma_declaration4960 = new BitSet(new long[]{0x0000000000080420L,0x2000100020100000L,0x0000000000000080L,0x0000001000000000L,0x0000000000000000L,0x0008080000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
    public static final BitSet FOLLOW_constant_in_pragma_declaration4962 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_INLINE_VK_in_pragma_declaration4983 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_id_in_pragma_declaration4985 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_pragma_declaration4987 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_RESTRICT_REFERENCES_VK_in_pragma_declaration5008 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_SQL92_RESERVED_DEFAULT_in_pragma_declaration5010 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0020000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_id_in_pragma_declaration5013 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0020000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_record_type_dec_in_record_declaration5059 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_record_var_dec_in_record_declaration5070 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RECORD_TYPE_DECLARE_in_record_type_dec5094 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_name_in_record_type_dec5096 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L,0x0000000000000000L,0x0000000010000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_REF_VK_in_record_type_dec5098 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_type_spec_in_record_type_dec5101 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_FIELDS_in_record_type_dec5105 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_field_spec_in_record_type_dec5107 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000400000L});
    public static final BitSet FOLLOW_FIELD_SPEC_in_field_spec5131 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_field_spec5133 = new BitSet(new long[]{0x0000000000000008L,0x0000100000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
    public static final BitSet FOLLOW_type_spec_in_field_spec5135 = new BitSet(new long[]{0x0000000000000008L,0x0000100000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
    public static final BitSet FOLLOW_SQL92_RESERVED_NULL_in_field_spec5138 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
    public static final BitSet FOLLOW_default_value_part_in_field_spec5141 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_RECORD_VAR_DECLARE_in_record_var_dec5164 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_record_name_in_record_var_dec5166 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0040000000000000L});
    public static final BitSet FOLLOW_type_name_in_record_var_dec5168 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x000C000000000000L});
    public static final BitSet FOLLOW_set_in_record_var_dec5170 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_table_type_dec_in_table_declaration5197 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_table_var_dec_in_table_declaration5208 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TABLE_TYPE_DECLARE_in_table_type_dec5229 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_name_in_table_type_dec5231 = new BitSet(new long[]{0x0000000000000000L,0x0400100000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x2000000000000000L});
    public static final BitSet FOLLOW_varray_type_def_in_table_type_dec5251 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_NULL_in_table_type_dec5270 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
    public static final BitSet FOLLOW_SQL92_RESERVED_TABLE_in_table_type_dec5274 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_spec_in_table_type_dec5276 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
    public static final BitSet FOLLOW_table_indexed_by_part_in_table_type_dec5278 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_INDEXED_BY_in_table_indexed_by_part5325 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_spec_in_table_indexed_by_part5327 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_NULL_in_varray_type_def5348 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x2000000000000000L});
    public static final BitSet FOLLOW_VARR_ARRAY_DEF_in_varray_type_def5352 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_varray_type_def5354 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_type_spec_in_varray_type_def5356 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_TABLE_VAR_DECLARE_in_table_var_dec5378 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_table_var_name_in_table_var_dec5380 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_type_spec_in_table_var_dec5382 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_STATEMENTS_in_seq_of_statements5409 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_statement_in_seq_of_statements5411 = new BitSet(new long[]{0x0001200000000008L,0x0000104240200000L,0x0400000000100001L,0x0000000000010020L,0x0000000000100180L,0x0001008000000000L,0x0000000020000000L,0x0420281000080000L,0x0000000000008002L,0x0000000000000000L,0x00C0000000000000L,0x4000500021000000L});
    public static final BitSet FOLLOW_label_declaration_in_statement5433 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_assignment_statement_in_statement5444 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_continue_statement_in_statement5455 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_exit_statement_in_statement5466 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_goto_statement_in_statement5477 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_if_statement_in_statement5488 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_loop_statement_in_statement5499 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_forall_statement_in_statement5510 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_null_statement_in_statement5521 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_raise_statement_in_statement5532 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_return_statement_in_statement5543 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_case_statement_in_statement5554 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_sql_statement_in_statement5565 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_function_call_in_statement5576 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_body_in_statement5587 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_block_in_statement5598 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_LABEL_DECLARE_in_label_declaration5619 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_label_name_in_label_declaration5621 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ASSIGN_in_assignment_statement5644 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_general_element_in_assignment_statement5646 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_assignment_statement5648 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CONTINUE_VK_in_continue_statement5670 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_label_name_in_continue_statement5672 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_general_when_in_continue_statement5675 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_WHEN_in_general_when5698 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_general_when5700 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EXIT_VK_in_exit_statement5722 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_label_name_in_exit_statement5724 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_general_when_in_exit_statement5727 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_GOTO_in_goto_statement5750 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_label_name_in_goto_statement5752 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PLSQL_RESERVED_IF_in_if_statement5774 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_if_statement5776 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
    public static final BitSet FOLLOW_seq_of_statements_in_if_statement5778 = new BitSet(new long[]{0x0000000800000008L,0x0000000002000000L});
    public static final BitSet FOLLOW_elsif_part_in_if_statement5780 = new BitSet(new long[]{0x0000000800000008L,0x0000000002000000L});
    public static final BitSet FOLLOW_else_part_in_if_statement5783 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PLSQL_NON_RESERVED_ELSIF_in_elsif_part5806 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_elsif_part5808 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
    public static final BitSet FOLLOW_seq_of_statements_in_elsif_part5810 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ELSE_in_else_part5832 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_seq_of_statements_in_else_part5834 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_WHILE_LOOP_in_loop_statement5856 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_label_name_in_loop_statement5858 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400010000L});
    public static final BitSet FOLLOW_expression_in_loop_statement5861 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
    public static final BitSet FOLLOW_seq_of_statements_in_loop_statement5863 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_FOR_LOOP_in_loop_statement5876 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_label_name_in_loop_statement5878 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000080008000040L});
    public static final BitSet FOLLOW_cursor_loop_param_in_loop_statement5881 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
    public static final BitSet FOLLOW_seq_of_statements_in_loop_statement5883 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_LOOP_VK_in_loop_statement5896 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_label_name_in_loop_statement5898 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
    public static final BitSet FOLLOW_seq_of_statements_in_loop_statement5901 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_INDEXED_FOR_in_cursor_loop_param5925 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_index_name_in_cursor_loop_param5927 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
    public static final BitSet FOLLOW_REVERSE_VK_in_cursor_loop_param5929 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
    public static final BitSet FOLLOW_SIMPLE_BOUND_in_cursor_loop_param5933 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_cursor_loop_param5935 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_cursor_loop_param5937 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CURSOR_BASED_FOR_in_cursor_loop_param5951 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_record_name_in_cursor_loop_param5953 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
    public static final BitSet FOLLOW_cursor_name_in_cursor_loop_param5955 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
    public static final BitSet FOLLOW_expression_list_in_cursor_loop_param5957 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SELECT_BASED_FOR_in_cursor_loop_param5971 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_record_name_in_cursor_loop_param5973 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_select_statement_in_cursor_loop_param5975 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_FORALL_VK_in_forall_statement5999 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_index_name_in_forall_statement6001 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0800800010000000L});
    public static final BitSet FOLLOW_bounds_clause_in_forall_statement6003 = new BitSet(new long[]{0x0001000000000000L,0x0000004040200000L,0x0400000000000001L,0x0000000000000020L,0x0000000000000080L,0x0001000000000000L,0x0000000020000000L,0x0020080000000000L,0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000500000000000L});
    public static final BitSet FOLLOW_sql_statement_in_forall_statement6005 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_EXCEPTIONS_VK_in_forall_statement6007 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SIMPLE_BOUND_in_bounds_clause6030 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_bounds_clause6032 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_bounds_clause6034 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_INDICES_BOUND_in_bounds_clause6047 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_collection_name_in_bounds_clause6049 = new BitSet(new long[]{0x0000000000000008L,0x0000000000001000L});
    public static final BitSet FOLLOW_between_bound_in_bounds_clause6051 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_VALUES_BOUND_in_bounds_clause6065 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_index_name_in_bounds_clause6067 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_BETWEEN_in_between_bound6090 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_between_bound6092 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_between_bound6094 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_NULL_in_null_statement6115 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RAISE_VK_in_raise_statement6136 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_exception_name_in_raise_statement6138 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_RETURN_VK_in_return_statement6161 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_return_statement6163 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ROUTINE_CALL_in_function_call6186 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_routine_name_in_function_call6188 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000080000L});
    public static final BitSet FOLLOW_function_argument_in_function_call6190 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_BODY_in_body6213 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_label_name_in_body6215 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
    public static final BitSet FOLLOW_seq_of_statements_in_body6218 = new BitSet(new long[]{0x0000000000000008L,0x0000000008000000L});
    public static final BitSet FOLLOW_exception_clause_in_body6220 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_EXCEPTION_in_exception_clause6246 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_exception_handler_in_exception_clause6248 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_WHEN_in_exception_handler6271 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_exception_name_in_exception_handler6273 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000020L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
    public static final BitSet FOLLOW_seq_of_statements_in_exception_handler6276 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_BLOCK_in_block6300 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_declare_spec_in_block6302 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x4080000000000000L,0x10E0068000100082L});
    public static final BitSet FOLLOW_body_in_block6305 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_execute_immediate_in_sql_statement6330 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_data_manipulation_language_statements_in_sql_statement6341 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_cursor_manipulation_statements_in_sql_statement6352 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_transaction_control_statements_in_sql_statement6363 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_EXECUTE_VK_in_execute_immediate6384 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_execute_immediate6386 = new BitSet(new long[]{0x0000002000000008L,0x0000010000000000L,0x0000080000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000040000L});
    public static final BitSet FOLLOW_into_clause_in_execute_immediate6389 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_using_clause_in_execute_immediate6391 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_dynamic_returning_clause_in_execute_immediate6393 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_DYNAMIC_RETURN_in_dynamic_returning_clause6419 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_into_clause_in_dynamic_returning_clause6421 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_merge_statement_in_data_manipulation_language_statements6446 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_lock_table_statement_in_data_manipulation_language_statements6457 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_select_statement_in_data_manipulation_language_statements6468 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_update_statement_in_data_manipulation_language_statements6480 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_delete_statement_in_data_manipulation_language_statements6492 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_insert_statement_in_data_manipulation_language_statements6503 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SELECT_STATEMENT_in_select_statement6524 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_subquery_factoring_clause_in_select_statement6526 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
    public static final BitSet FOLLOW_subquery_in_select_statement6529 = new BitSet(new long[]{0x0000000000000008L,0x0002000080000000L});
    public static final BitSet FOLLOW_for_update_clause_in_select_statement6531 = new BitSet(new long[]{0x0000000000000008L,0x0002000080000000L});
    public static final BitSet FOLLOW_order_by_clause_in_select_statement6534 = new BitSet(new long[]{0x0000000000000008L,0x0002000000000000L});
    public static final BitSet FOLLOW_SQL92_RESERVED_WITH_in_subquery_factoring_clause6560 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_factoring_element_in_subquery_factoring_clause6562 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000002000L});
    public static final BitSet FOLLOW_FACTORING_in_factoring_element6585 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_query_name_in_factoring_element6587 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
    public static final BitSet FOLLOW_subquery_in_factoring_element6589 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SUBQUERY_in_subquery6611 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_subquery_basic_elements_in_subquery6613 = new BitSet(new long[]{0x0002000000000008L,0x4000008000000000L});
    public static final BitSet FOLLOW_subquery_operation_part_in_subquery6615 = new BitSet(new long[]{0x0002000000000008L,0x4000008000000000L});
    public static final BitSet FOLLOW_set_in_subquery_operation_part6638 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ALL_in_subquery_operation_part6646 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
    public static final BitSet FOLLOW_subquery_basic_elements_in_subquery_operation_part6649 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_query_block_in_subquery_basic_elements6670 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_subquery_in_subquery_basic_elements6681 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQL92_RESERVED_SELECT_in_query_block6702 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_from_clause_in_query_block6717 = new BitSet(new long[]{0x0000000000000080L,0x8000000000800010L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ALL_in_query_block6739 = new BitSet(new long[]{0x0000000000000080L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
    public static final BitSet FOLLOW_ASTERISK_in_query_block6760 = new BitSet(new long[]{0x0000001000000008L,0x0000011800000000L,0x0000080000000010L,0x0000000000000000L,0x0000001000000000L});
    public static final BitSet FOLLOW_SELECT_LIST_in_query_block6780 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_selected_element_in_query_block6782 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_into_clause_in_query_block6812 = new BitSet(new long[]{0x0000001000000008L,0x0000001800000000L,0x0000000000000010L,0x0000000000000000L,0x0000001000000000L});
    public static final BitSet FOLLOW_where_clause_in_query_block6815 = new BitSet(new long[]{0x0000001000000008L,0x0000001800000000L,0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
    public static final BitSet FOLLOW_hierarchical_query_clause_in_query_block6818 = new BitSet(new long[]{0x0000001000000008L,0x0000001800000000L});
    public static final BitSet FOLLOW_group_by_clause_in_query_block6834 = new BitSet(new long[]{0x0000001000000008L,0x0000001000000000L});
    public static final BitSet FOLLOW_having_clause_in_query_block6837 = new BitSet(new long[]{0x0000001000000008L});
    public static final BitSet FOLLOW_model_clause_in_query_block6840 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SELECT_ITEM_in_selected_element6872 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_selected_element6874 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000002000L});
    public static final BitSet FOLLOW_alias_in_selected_element6876 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_FROM_in_from_clause6899 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_table_ref_in_from_clause6901 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
    public static final BitSet FOLLOW_TABLE_REF_in_table_ref6924 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_table_ref_aux_in_table_ref6926 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
    public static final BitSet FOLLOW_join_clause_in_table_ref6928 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
    public static final BitSet FOLLOW_TABLE_REF_ELEMENT_in_table_ref_aux6951 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_alias_in_table_ref_aux6953 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
    public static final BitSet FOLLOW_dml_table_expression_clause_in_table_ref_aux6956 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000010000000L,0x0000000000000000L,0x0000000000000000L,0x2000000000000000L,0x0000000000000200L});
    public static final BitSet FOLLOW_ONLY_VK_in_table_ref_aux6958 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L,0x0000000000000000L,0x0000000000000000L,0x2000000000000000L,0x0000000000000200L});
    public static final BitSet FOLLOW_pivot_clause_in_table_ref_aux6961 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x2000000000000000L,0x0000000000000200L});
    public static final BitSet FOLLOW_unpivot_clause_in_table_ref_aux6964 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
    public static final BitSet FOLLOW_flashback_query_clause_in_table_ref_aux6967 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
    public static final BitSet FOLLOW_JOIN_DEF_in_join_clause6990 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_table_ref_aux_in_join_clause7010 = new BitSet(new long[]{0x0000002000000008L,0x0000400000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
    public static final BitSet FOLLOW_query_partition_clause_in_join_clause7012 = new BitSet(new long[]{0x0000002000000008L,0x0000400000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
    public static final BitSet FOLLOW_join_on_part_in_join_clause7016 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_join_using_part_in_join_clause7018 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ON_in_join_on_part7043 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_join_on_part7045 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PLSQL_NON_RESERVED_USING_in_join_using_part7068 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_join_using_part7070 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_PARTITION_VK_in_query_partition_clause7093 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_list_in_query_partition_clause7096 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_expression_in_query_partition_clause7098 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_set_in_flashback_query_clause7122 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_flashback_query_clause7135 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PIVOT_VK_in_pivot_clause7158 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_XML_VK_in_pivot_clause7160 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
    public static final BitSet FOLLOW_pivot_element_in_pivot_clause7163 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
    public static final BitSet FOLLOW_pivot_for_clause_in_pivot_clause7166 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_pivot_in_clause_in_pivot_clause7168 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PIVOT_ELEMENT_in_pivot_element7190 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_alias_in_pivot_element7192 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_pivot_element7195 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_FOR_in_pivot_for_clause7217 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_pivot_for_clause7219 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_SQL92_RESERVED_IN_in_pivot_in_clause7242 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_subquery_in_pivot_in_clause7258 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ANY_MODE_in_pivot_in_clause7274 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ANY_in_pivot_in_clause7276 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000080L});
    public static final BitSet FOLLOW_ELEMENTS_MODE_in_pivot_in_clause7294 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_pivot_in_clause_element_in_pivot_in_clause7296 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
    public static final BitSet FOLLOW_PIVOT_IN_ELEMENT_in_pivot_in_clause_element7339 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_alias_in_pivot_in_clause_element7341 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000600L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_pivot_in_clause_element7345 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_expression_list_in_pivot_in_clause_element7347 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_UNPIVOT_VK_in_unpivot_clause7370 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_unpivot_clause7373 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_NULLS_VK_in_unpivot_clause7379 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_column_name_in_unpivot_clause7384 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_pivot_for_clause_in_unpivot_clause7387 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_unpivot_in_clause_in_unpivot_clause7389 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_IN_in_unpivot_in_clause7411 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_unpivot_in_element_in_unpivot_in_clause7413 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x1000000000000000L});
    public static final BitSet FOLLOW_UNPIVOT_IN_ELEMENT_in_unpivot_in_element7436 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_unpivot_in_element7438 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0040000000000000L});
    public static final BitSet FOLLOW_PIVOT_ALIAS_in_unpivot_in_element7442 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_unpivot_in_element7445 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_expression_list_in_unpivot_in_element7447 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_HIERARCHICAL_in_hierarchical_query_clause7471 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_start_part_in_hierarchical_query_clause7473 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
    public static final BitSet FOLLOW_SQL92_RESERVED_CONNECT_in_hierarchical_query_clause7477 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_NOCYCLE_VK_in_hierarchical_query_clause7479 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_hierarchical_query_clause7482 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PLSQL_RESERVED_START_in_start_part7505 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_start_part7507 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_GROUP_in_group_by_clause7529 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_group_by_element_in_group_by_clause7531 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
    public static final BitSet FOLLOW_GROUP_BY_ELEMENT_in_group_by_element7554 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_group_by_elements_in_group_by_element7556 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_GROUPING_VK_in_group_by_elements7578 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_groupin_set_in_group_by_elements7580 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
    public static final BitSet FOLLOW_grouping_element_in_group_by_elements7593 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_GROUPIN_SET_in_groupin_set7615 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_grouping_element_in_groupin_set7617 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_grouping_element7639 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_grouping_element_in_grouping_element7645 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000001000000L,0x0000000000000600L,0x0000000400000000L,0x0000000000000000L,0x0000100000000000L});
    public static final BitSet FOLLOW_expression_list_in_grouping_element7658 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_expression_in_grouping_element7669 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQL92_RESERVED_HAVING_in_having_clause7691 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_having_clause7693 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PLSQL_NON_RESERVED_MODEL_in_model_clause7715 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_main_model_in_model_clause7717 = new BitSet(new long[]{0x0000000000000008L,0x8000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000040000000000L,0x0000000000008000L,0x0000000000000000L,0x0000001004000000L});
    public static final BitSet FOLLOW_cell_reference_options_in_model_clause7719 = new BitSet(new long[]{0x0000000000000008L,0x8000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000040000000000L,0x0000000000008000L,0x0000000000000000L,0x0000001004000000L});
    public static final BitSet FOLLOW_return_rows_clause_in_model_clause7722 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
    public static final BitSet FOLLOW_reference_model_in_model_clause7725 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
    public static final BitSet FOLLOW_set_in_cell_reference_options7748 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_NAV_VK_in_cell_reference_options7754 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_UNIQUE_in_cell_reference_options7767 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_cell_reference_options7769 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_RETURN_VK_in_return_rows_clause7795 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_return_rows_clause7797 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_REFERENCE_VK_in_reference_model7823 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_reference_model_name_in_reference_model7825 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
    public static final BitSet FOLLOW_subquery_in_reference_model7827 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
    public static final BitSet FOLLOW_model_column_clauses_in_reference_model7829 = new BitSet(new long[]{0x0000000000000008L,0x8000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000040000000000L,0x0000000000008000L});
    public static final BitSet FOLLOW_cell_reference_options_in_reference_model7831 = new BitSet(new long[]{0x0000000000000008L,0x8000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000040000000000L,0x0000000000008000L});
    public static final BitSet FOLLOW_MAIN_MODEL_in_main_model7854 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_main_model_name_in_main_model7856 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
    public static final BitSet FOLLOW_model_column_clauses_in_main_model7859 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
    public static final BitSet FOLLOW_model_rules_clause_in_main_model7861 = new BitSet(new long[]{0x0000000000000008L,0x8000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000040000000000L,0x0000000000008000L});
    public static final BitSet FOLLOW_cell_reference_options_in_main_model7863 = new BitSet(new long[]{0x0000000000000008L,0x8000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000040000000000L,0x0000000000008000L});
    public static final BitSet FOLLOW_MODEL_COLUMN_in_model_column_clauses7886 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_DIMENSION_VK_in_model_column_clauses7889 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_model_column_list_in_model_column_clauses7891 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MEASURES_VK_in_model_column_clauses7895 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_model_column_list_in_model_column_clauses7897 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_model_column_partition_part_in_model_column_clauses7900 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PARTITION_VK_in_model_column_partition_part7923 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_model_column_list_in_model_column_partition_part7925 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MODEL_COLUMNS_in_model_column_list7947 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_model_column_in_model_column_list7949 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
    public static final BitSet FOLLOW_MODEL_COLUMN_in_model_column7972 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_alias_in_model_column7974 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_model_column7977 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MODEL_RULES_in_model_rules_clause8000 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_model_rules_element_in_model_rules_clause8002 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0100000000000000L,0x0000000000000000L,0x0004000000000000L});
    public static final BitSet FOLLOW_model_rules_part_in_model_rules_clause8005 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_RULES_VK_in_model_rules_part8028 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_SQL92_RESERVED_UPDATE_in_model_rules_part8044 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000010000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
    public static final BitSet FOLLOW_UPSERT_VK_in_model_rules_part8046 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000010L,0x0000000010000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ALL_in_model_rules_part8048 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000010000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
    public static final BitSet FOLLOW_model_iterate_clause_in_model_rules_part8086 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MODEL_RULE_in_model_rules_element8118 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_ASSIGN_in_model_rules_element8134 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_model_expression_in_model_rules_element8136 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_model_rules_element8138 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_UPDATE_in_model_rules_element8155 = new BitSet(new long[]{0x0000000000000008L,0x0002000000000000L});
    public static final BitSet FOLLOW_UPSERT_VK_in_model_rules_element8157 = new BitSet(new long[]{0x0000000000000008L,0x0002000000000010L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ALL_in_model_rules_element8159 = new BitSet(new long[]{0x0000000000000008L,0x0002000000000000L});
    public static final BitSet FOLLOW_order_by_clause_in_model_rules_element8177 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ITERATE_VK_in_model_iterate_clause8209 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_model_iterate_clause8211 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
    public static final BitSet FOLLOW_until_part_in_model_iterate_clause8213 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_UNTIL_VK_in_until_part8236 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_until_part8238 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ORDER_in_order_by_clause8260 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_SIBLINGS_VK_in_order_by_clause8262 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
    public static final BitSet FOLLOW_ORDER_BY_ELEMENTS_in_order_by_clause8266 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_order_by_elements_in_order_by_clause8268 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
    public static final BitSet FOLLOW_ORDER_BY_ELEMENT_in_order_by_elements8292 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_order_by_elements8294 = new BitSet(new long[]{0x0000000000000008L,0x0000000000400200L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_NULLS_VK_in_order_by_elements8304 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L,0x0000000000080000L});
    public static final BitSet FOLLOW_set_in_order_by_elements8306 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_FOR_in_for_update_clause8334 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_for_update_of_part_in_for_update_clause8336 = new BitSet(new long[]{0x0010000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000080000L,0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_for_update_options_in_for_update_clause8339 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_OF_in_for_update_of_part8362 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_for_update_of_part8364 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_SKIP_VK_in_for_update_options8386 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PLSQL_RESERVED_NOWAIT_in_for_update_options8397 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_WAIT_VK_in_for_update_options8409 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_for_update_options8411 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_UPDATE_in_update_statement8435 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_general_table_ref_in_update_statement8437 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
    public static final BitSet FOLLOW_update_set_clause_in_update_statement8451 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000010L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
    public static final BitSet FOLLOW_where_clause_in_update_statement8465 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
    public static final BitSet FOLLOW_static_returning_clause_in_update_statement8468 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_error_logging_clause_in_update_statement8471 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SET_VK_in_update_set_clause8504 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_update_set_elements_in_update_set_clause8506 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000100000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_ASSIGN_in_update_set_elements8529 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_update_set_elements8531 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_update_set_elements8533 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ASSIGN_in_update_set_elements8546 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_update_set_elements8548 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
    public static final BitSet FOLLOW_subquery_in_update_set_elements8551 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_VALUE_VK_in_update_set_elements8564 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_update_set_elements8566 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_update_set_elements8569 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_update_set_elements8571 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_DELETE_in_delete_statement8595 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_general_table_ref_in_delete_statement8597 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000010L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
    public static final BitSet FOLLOW_where_clause_in_delete_statement8611 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
    public static final BitSet FOLLOW_static_returning_clause_in_delete_statement8614 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_error_logging_clause_in_delete_statement8617 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_INSERT_in_insert_statement8640 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_single_table_insert_in_insert_statement8655 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_multi_table_insert_in_insert_statement8670 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SINGLE_TABLE_MODE_in_single_table_insert8713 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_insert_into_clause_in_single_table_insert8715 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_values_clause_in_single_table_insert8718 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
    public static final BitSet FOLLOW_static_returning_clause_in_single_table_insert8720 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_select_statement_in_single_table_insert8724 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_error_logging_clause_in_single_table_insert8727 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MULTI_TABLE_MODE_in_multi_table_insert8750 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_select_statement_in_multi_table_insert8752 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000400000000L});
    public static final BitSet FOLLOW_conditional_insert_clause_in_multi_table_insert8755 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_multi_table_element_in_multi_table_insert8757 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000400000000L});
    public static final BitSet FOLLOW_TABLE_ELEMENT_in_multi_table_element8781 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_insert_into_clause_in_multi_table_element8783 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_values_clause_in_multi_table_element8785 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_error_logging_clause_in_multi_table_element8788 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CONDITIONAL_INSERT_in_conditional_insert_clause8811 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_conditional_insert_when_part_in_conditional_insert_clause8820 = new BitSet(new long[]{0x0000000000000008L,0x0000000002000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_conditional_insert_else_part_in_conditional_insert_clause8823 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_WHEN_in_conditional_insert_when_part8847 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_conditional_insert_when_part8849 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000400000000L});
    public static final BitSet FOLLOW_multi_table_element_in_conditional_insert_when_part8851 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000400000000L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ELSE_in_conditional_insert_else_part8874 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_multi_table_element_in_conditional_insert_else_part8876 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000400000000L});
    public static final BitSet FOLLOW_SQL92_RESERVED_INTO_in_insert_into_clause8899 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_general_table_ref_in_insert_into_clause8901 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
    public static final BitSet FOLLOW_COLUMNS_in_insert_into_clause8904 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_insert_into_clause8906 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_SQL92_RESERVED_VALUES_in_values_clause8930 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_list_in_values_clause8932 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MERGE_VK_in_merge_statement8955 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_alias_in_merge_statement8957 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
    public static final BitSet FOLLOW_tableview_name_in_merge_statement8960 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_PLSQL_NON_RESERVED_USING_in_merge_statement8976 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_selected_tableview_in_merge_statement8978 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_merge_statement8980 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_merge_update_clause_in_merge_statement8996 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000402000000000L});
    public static final BitSet FOLLOW_merge_insert_clause_in_merge_statement8999 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
    public static final BitSet FOLLOW_error_logging_clause_in_merge_statement9002 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MERGE_UPDATE_in_merge_update_clause9027 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_merge_element_in_merge_update_clause9029 = new BitSet(new long[]{0x0000000000000008L,0x0000000000200000L,0x0000000000100010L});
    public static final BitSet FOLLOW_where_clause_in_merge_update_clause9032 = new BitSet(new long[]{0x0000000000000008L,0x0000000000200000L});
    public static final BitSet FOLLOW_merge_update_delete_part_in_merge_update_clause9035 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ASSIGN_in_merge_element9058 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_merge_element9060 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_merge_element9062 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_DELETE_in_merge_update_delete_part9084 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_where_clause_in_merge_update_delete_part9086 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MERGE_INSERT_in_merge_insert_clause9108 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_COLUMNS_in_merge_insert_clause9111 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_merge_insert_clause9113 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_expression_list_in_merge_insert_clause9117 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_where_clause_in_merge_insert_clause9119 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SELECTED_TABLEVIEW_in_selected_tableview9143 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_alias_in_selected_tableview9145 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000280000000L});
    public static final BitSet FOLLOW_tableview_name_in_selected_tableview9149 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_subquery_in_selected_tableview9151 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PLSQL_RESERVED_LOCK_in_lock_table_statement9176 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_lock_table_element_in_lock_table_statement9178 = new BitSet(new long[]{0x0040080000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000200000000L,0x0000000000000000L,0x0002000000000000L});
    public static final BitSet FOLLOW_lock_mode_in_lock_table_statement9181 = new BitSet(new long[]{0x0010000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_wait_nowait_part_in_lock_table_statement9183 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_WAIT_VK_in_wait_nowait_part9206 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_wait_nowait_part9208 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PLSQL_RESERVED_NOWAIT_in_wait_nowait_part9220 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_LOCK_TABLE_ELEMENT_in_lock_table_element9243 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_tableview_name_in_lock_table_element9245 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000080000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000040000000L});
    public static final BitSet FOLLOW_partition_extension_clause_in_lock_table_element9247 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ROW_VK_in_lock_mode9269 = new BitSet(new long[]{0x0040000000000000L});
    public static final BitSet FOLLOW_PLSQL_RESERVED_SHARE_in_lock_mode9271 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ROW_VK_in_lock_mode9282 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_PLSQL_RESERVED_EXCLUSIVE_in_lock_mode9284 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PLSQL_RESERVED_SHARE_in_lock_mode9295 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000001L});
    public static final BitSet FOLLOW_SQL92_RESERVED_UPDATE_in_lock_mode9297 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PLSQL_RESERVED_SHARE_in_lock_mode9309 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
    public static final BitSet FOLLOW_ROW_VK_in_lock_mode9311 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_PLSQL_RESERVED_EXCLUSIVE_in_lock_mode9313 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PLSQL_RESERVED_EXCLUSIVE_in_lock_mode9324 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TABLE_REF_in_general_table_ref9348 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_alias_in_general_table_ref9350 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
    public static final BitSet FOLLOW_dml_table_expression_clause_in_general_table_ref9353 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
    public static final BitSet FOLLOW_ONLY_VK_in_general_table_ref9355 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_STATIC_RETURNING_in_static_returning_clause9378 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_static_returning_clause9380 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L,0x0000080000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_into_clause_in_static_returning_clause9383 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_LOG_VK_in_error_logging_clause9405 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_error_logging_into_part_in_error_logging_clause9407 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L,0x0000000000000000L,0x0000000040000000L});
    public static final BitSet FOLLOW_expression_in_error_logging_clause9410 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000040000000L});
    public static final BitSet FOLLOW_error_logging_reject_part_in_error_logging_clause9413 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_INTO_in_error_logging_into_part9436 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_tableview_name_in_error_logging_into_part9438 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_REJECT_VK_in_error_logging_reject_part9460 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UNLIMITED_VK_in_error_logging_reject_part9463 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_expression_in_error_logging_reject_part9465 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_TABLE_EXPRESSION_in_dml_table_expression_clause9488 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_COLLECTION_MODE_in_dml_table_expression_clause9505 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_dml_table_expression_clause9507 = new BitSet(new long[]{0x0400000000000008L});
    public static final BitSet FOLLOW_PLUS_SIGN_in_dml_table_expression_clause9509 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SELECT_MODE_in_dml_table_expression_clause9527 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_select_statement_in_dml_table_expression_clause9529 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000020L});
    public static final BitSet FOLLOW_subquery_restriction_clause_in_dml_table_expression_clause9531 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_DIRECT_MODE_in_dml_table_expression_clause9549 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_tableview_name_in_dml_table_expression_clause9551 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
    public static final BitSet FOLLOW_sample_clause_in_dml_table_expression_clause9553 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_WITH_in_subquery_restriction_clause9596 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_READ_VK_in_subquery_restriction_clause9599 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_CHECK_in_subquery_restriction_clause9601 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_constraint_name_in_subquery_restriction_clause9603 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SAMPLE_VK_in_sample_clause9627 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_BLOCK_VK_in_sample_clause9629 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_sample_clause9632 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x1000000000000000L});
    public static final BitSet FOLLOW_seed_part_in_sample_clause9634 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SEED_VK_in_seed_part9658 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_seed_part9660 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_close_statement_in_cursor_manipulation_statements9687 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_open_statement_in_cursor_manipulation_statements9698 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_fetch_statement_in_cursor_manipulation_statements9709 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_open_for_statement_in_cursor_manipulation_statements9720 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_CLOSE_VK_in_close_statement9742 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_variable_name_in_close_statement9744 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_OPEN_VK_in_open_statement9767 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_cursor_name_in_open_statement9769 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
    public static final BitSet FOLLOW_expression_list_in_open_statement9771 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_FETCH_in_fetch_statement9794 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_cursor_name_in_fetch_statement9796 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L,0x0000080000000000L});
    public static final BitSet FOLLOW_SQL92_RESERVED_INTO_in_fetch_statement9817 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_variable_name_in_fetch_statement9819 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
    public static final BitSet FOLLOW_BULK_VK_in_fetch_statement9841 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_variable_name_in_fetch_statement9843 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
    public static final BitSet FOLLOW_OPEN_VK_in_open_for_statement9890 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_variable_name_in_open_for_statement9892 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_expression_in_open_for_statement9895 = new BitSet(new long[]{0x0000002000000008L});
    public static final BitSet FOLLOW_select_statement_in_open_for_statement9897 = new BitSet(new long[]{0x0000002000000008L});
    public static final BitSet FOLLOW_using_clause_in_open_for_statement9900 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_transaction_command_in_transaction_control_statements9926 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_constraint_command_in_transaction_control_statements9937 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_commit_statement_in_transaction_control_statements9948 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rollback_statement_in_transaction_control_statements9959 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_savepoint_statement_in_transaction_control_statements9970 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SET_TRANSACTION_in_set_transaction_command9991 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_CHAR_STRING_in_set_transaction_command9993 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x2000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000080000400000L});
    public static final BitSet FOLLOW_READ_VK_in_set_transaction_command10014 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_set_transaction_command10016 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ISOLATION_VK_in_set_transaction_command10041 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_set_transaction_command10043 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ROLLBACK_VK_in_set_transaction_command10068 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_rollback_segment_name_in_set_transaction_command10070 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SET_CONSTRAINT_in_set_constraint_command10117 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ALL_in_set_constraint_command10120 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000200000000000L,0x0000080000000000L});
    public static final BitSet FOLLOW_constraint_name_in_set_constraint_command10122 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000200000001000L,0x0000080000000000L});
    public static final BitSet FOLLOW_set_in_set_constraint_command10126 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_COMMIT_VK_in_commit_statement10153 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_WORK_VK_in_commit_statement10155 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000008L,0x0000000000200000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000008000L});
    public static final BitSet FOLLOW_COMMENT_VK_in_commit_statement10177 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_commit_statement10179 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_FORCE_VK_in_commit_statement10200 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_CORRUPT_XID_VK_in_commit_statement10203 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_commit_statement10205 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CORRUPT_XID_ALL_VK_in_commit_statement10207 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_expression_in_commit_statement10209 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_commit_statement10211 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_write_clause_in_commit_statement10243 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_WRITE_VK_in_write_clause10275 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_ROLLBACK_VK_in_rollback_statement10312 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_WORK_VK_in_rollback_statement10314 = new BitSet(new long[]{0x0000000000000008L,0x1000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_SQL92_RESERVED_TO_in_rollback_statement10336 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_savepoint_name_in_rollback_statement10338 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_FORCE_VK_in_rollback_statement10359 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_CHAR_STRING_in_rollback_statement10361 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SAVEPOINT_VK_in_savepoint_statement10408 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_savepoint_name_in_savepoint_statement10410 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EXPR_LIST_in_expression_list10437 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression_list10439 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_LOGIC_EXPR_in_expression10462 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression10464 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EXPR_in_expression10477 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression10479 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_OR_in_expression_element10501 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10503 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10505 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_AND_in_expression_element10518 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10520 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10522 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_NOT_in_expression_element10535 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10537 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_expression_element10550 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10564 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10566 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IS_NOT_NULL_in_expression_element10580 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10582 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IS_NULL_in_expression_element10595 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10597 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IS_NOT_NAN_in_expression_element10610 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10612 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IS_NAN_in_expression_element10625 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10627 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IS_NOT_PRESENT_in_expression_element10640 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10642 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IS_PRESENT_in_expression_element10655 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10657 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IS_NOT_INFINITE_in_expression_element10670 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10672 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IS_INFINITE_in_expression_element10685 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10687 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IS_NOT_A_SET_in_expression_element10700 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10702 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IS_A_SET_in_expression_element10715 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10717 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IS_NOT_EMPTY_in_expression_element10730 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10732 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IS_EMPTY_in_expression_element10745 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10747 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IS_NOT_OF_TYPE_in_expression_element10760 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10762 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_type_spec_in_expression_element10764 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_IS_OF_TYPE_in_expression_element10778 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10780 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_type_spec_in_expression_element10782 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_set_in_expression_element10797 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10803 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10805 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_NOT_IN_in_expression_element10819 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10821 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
    public static final BitSet FOLLOW_in_elements_in_expression_element10823 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_IN_in_expression_element10836 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10838 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
    public static final BitSet FOLLOW_in_elements_in_expression_element10840 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_NOT_BETWEEN_in_expression_element10853 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10855 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10857 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10859 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_BETWEEN_in_expression_element10872 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10874 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10876 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10878 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_NOT_LIKE_in_expression_element10891 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10893 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10895 = new BitSet(new long[]{0x04000001386C44A8L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10897 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_expression_element10911 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10921 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10923 = new BitSet(new long[]{0x04000001386C44A8L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10925 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CONCATENATION_OP_in_expression_element10940 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10942 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10944 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PLUS_SIGN_in_expression_element10957 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10959 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10961 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MINUS_SIGN_in_expression_element10974 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10976 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10978 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ASTERISK_in_expression_element10991 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10993 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element10995 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SOLIDUS_in_expression_element11008 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element11010 = new BitSet(new long[]{0x04000001386C44A0L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_element_in_expression_element11012 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_UNARY_OPERATOR_in_expression_element11026 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element11028 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_PRIOR_in_expression_element11041 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element11043 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_NEW_VK_in_expression_element11056 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression_element11058 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_DISTINCT_in_expression_element11071 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element11073 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_STANDARD_FUNCTION_in_expression_element11086 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_standard_function_in_expression_element11088 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_expression_element11101 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element11111 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_VECTOR_EXPR_in_expression_element11124 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element11126 = new BitSet(new long[]{0x04000001386C44A8L,0x20091C20309010D4L,0x0002000000008080L,0x0100001200000000L,0xC00000A000000000L,0x0088280038008FFFL,0x00000000000D0040L,0x0400200000000000L,0x0000000000408200L,0x01000000A0800000L,0x0000000000000100L});
    public static final BitSet FOLLOW_DATETIME_OP_in_expression_element11141 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element11143 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000002000000L,0x0000000800000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
    public static final BitSet FOLLOW_datetime_element_in_expression_element11145 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_model_expression_in_expression_element11157 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_KEEP_VK_in_expression_element11169 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_expression_element11171 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
    public static final BitSet FOLLOW_DENSE_RANK_VK_in_expression_element11173 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L,0x0000000000080000L});
    public static final BitSet FOLLOW_set_in_expression_element11175 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
    public static final BitSet FOLLOW_order_by_clause_in_expression_element11181 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
    public static final BitSet FOLLOW_over_clause_in_expression_element11183 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_DOT_ASTERISK_in_expression_element11198 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_tableview_name_in_expression_element11200 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_case_statement_in_expression_element11213 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_constant_in_expression_element11224 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_general_element_in_expression_element11235 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_subquery_in_expression_element11246 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_subquery_in_in_elements11266 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_expression_list_in_in_elements11277 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_AT_VK_in_datetime_element11298 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_datetime_element11300 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000100000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
    public static final BitSet FOLLOW_LOCAL_VK_in_datetime_element11303 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_TIME_VK_in_datetime_element11305 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_datetime_element11307 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_DAY_VK_in_datetime_element11321 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_SECOND_VK_in_datetime_element11323 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_datetime_element11325 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_YEAR_VK_in_datetime_element11339 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_MONTH_VK_in_datetime_element11341 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_datetime_element11343 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MODEL_EXPRESSION_in_model_expression11365 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_element_in_model_expression11367 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L,0x0000000000000000L,0x0000000000000000L,0x0000000000C00200L,0x0000000400000000L});
    public static final BitSet FOLLOW_model_expression_element_in_model_expression11369 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000080L,0x0000000000000000L,0x0000000000000000L,0x0000000000C00200L,0x0000000400000000L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ANY_in_model_expression_element11391 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_expression_in_model_expression_element11402 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FOR_SINGLE_COLUMN_in_model_expression_element11414 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_model_expression_element11416 = new BitSet(new long[]{0x0000000000000000L,0x1000002100000000L,0x0000000000000000L,0x0000040000000000L,0x0000800000000000L});
    public static final BitSet FOLLOW_for_single_column_element_in_model_expression_element11418 = new BitSet(new long[]{0x0000000000000008L,0x0000040000000000L});
    public static final BitSet FOLLOW_for_like_part_in_model_expression_element11420 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_FOR_MULTI_COLUMN_in_model_expression_element11434 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_model_expression_element11436 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L,0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_SQL92_RESERVED_IN_in_model_expression_element11440 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_subquery_in_model_expression_element11443 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_expression_list_in_model_expression_element11445 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
    public static final BitSet FOLLOW_SQL92_RESERVED_IN_in_for_single_column_element11470 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_list_in_for_single_column_element11472 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_FROM_in_for_single_column_element11485 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_for_single_column_element11487 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_TO_in_for_single_column_element11501 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_for_single_column_element11503 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_for_single_column_element11517 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_for_single_column_element11523 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_LIKE_in_for_like_part11546 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_for_like_part11548 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SIMPLE_CASE_in_case_statement11570 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_label_name_in_case_statement11572 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400010000L});
    public static final BitSet FOLLOW_expression_in_case_statement11575 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_case_when_part_in_case_statement11577 = new BitSet(new long[]{0x0000000000000008L,0x0000000002000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_case_else_part_in_case_statement11580 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SEARCHED_CASE_in_case_statement11596 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_label_name_in_case_statement11598 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
    public static final BitSet FOLLOW_case_when_part_in_case_statement11601 = new BitSet(new long[]{0x0000000000000008L,0x0000000002000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_case_else_part_in_case_statement11604 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_WHEN_in_case_when_part11630 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_case_when_part11632 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
    public static final BitSet FOLLOW_seq_of_statements_in_case_when_part11635 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_expression_in_case_when_part11637 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ELSE_in_case_else_part11660 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_seq_of_statements_in_case_else_part11663 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_expression_in_case_else_part11665 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_FUNCTION_ENABLING_OVER_in_standard_function11689 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_function_argument_in_standard_function11691 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
    public static final BitSet FOLLOW_over_clause_in_standard_function11693 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_FUNCTION_ENABLING_USING_in_standard_function11707 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_function_argument_in_standard_function11709 = new BitSet(new long[]{0x0000002000000008L});
    public static final BitSet FOLLOW_using_clause_in_standard_function11711 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_COUNT_VK_in_standard_function11725 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_ASTERISK_in_standard_function11729 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
    public static final BitSet FOLLOW_expression_in_standard_function11733 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
    public static final BitSet FOLLOW_over_clause_in_standard_function11737 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_standard_function11751 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_subquery_in_standard_function11758 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_expression_in_standard_function11760 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_type_spec_in_standard_function11763 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CHR_VK_in_standard_function11776 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_standard_function11778 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
    public static final BitSet FOLLOW_NCHAR_CS_VK_in_standard_function11780 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_COLLECT_VK_in_standard_function11793 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_column_name_in_standard_function11802 = new BitSet(new long[]{0x0000000000000008L,0x0002000000000000L});
    public static final BitSet FOLLOW_collect_order_by_part_in_standard_function11804 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_FUNCTION_ENABLING_WITHIN_OR_OVER_in_standard_function11818 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_function_argument_in_standard_function11820 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000001000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000002000L});
    public static final BitSet FOLLOW_within_clause_in_standard_function11823 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000001000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000002000L});
    public static final BitSet FOLLOW_over_clause_in_standard_function11825 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000001000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000002000L});
    public static final BitSet FOLLOW_DECOMPOSE_VK_in_standard_function11841 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_standard_function11843 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000800000000000L,0x0000000000000040L});
    public static final BitSet FOLLOW_EXTRACT_VK_in_standard_function11864 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_REGULAR_ID_in_standard_function11866 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_standard_function11868 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_standard_function11881 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_standard_function11887 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000001000200000L});
    public static final BitSet FOLLOW_NULLS_VK_in_standard_function11889 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
    public static final BitSet FOLLOW_over_clause_in_standard_function11892 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PREDICTION_FUNCTION_in_standard_function11906 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_standard_function11908 = new BitSet(new long[]{0x0000002000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000200000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_cost_matrix_clause_in_standard_function11911 = new BitSet(new long[]{0x0000002000000008L});
    public static final BitSet FOLLOW_using_clause_in_standard_function11914 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_TRANSLATE_VK_in_standard_function11928 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_standard_function11930 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0010000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L,0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_standard_function11939 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_TREAT_VK_in_standard_function11953 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_standard_function11955 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L,0x0000000000000000L,0x0000000010000000L});
    public static final BitSet FOLLOW_REF_VK_in_standard_function11957 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L});
    public static final BitSet FOLLOW_type_spec_in_standard_function11960 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_TRIM_VK_in_standard_function11973 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_standard_function11984 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_standard_function11986 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_XMLAGG_VK_in_standard_function12002 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_standard_function12004 = new BitSet(new long[]{0x0000000000000008L,0x0002000000000000L});
    public static final BitSet FOLLOW_order_by_clause_in_standard_function12006 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_standard_function12020 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_xml_multiuse_expression_element_in_standard_function12026 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
    public static final BitSet FOLLOW_XMLEXISTS_VK_in_standard_function12040 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_standard_function12042 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000100000000000L});
    public static final BitSet FOLLOW_xml_passing_clause_in_standard_function12044 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_XMLPARSE_VK_in_standard_function12058 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_standard_function12060 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_standard_function12066 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_WELLFORMED_VK_in_standard_function12068 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_XMLQUERY_VK_in_standard_function12082 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_standard_function12084 = new BitSet(new long[]{0x0000000000000008L,0x0000100000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000100000000000L});
    public static final BitSet FOLLOW_xml_passing_clause_in_standard_function12086 = new BitSet(new long[]{0x0000000000000008L,0x0000100000000000L});
    public static final BitSet FOLLOW_SQL92_RESERVED_NULL_in_standard_function12089 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_XMLROOT_VK_in_standard_function12103 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_standard_function12105 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
    public static final BitSet FOLLOW_xml_param_version_part_in_standard_function12107 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000400000L});
    public static final BitSet FOLLOW_xmlroot_param_standalone_part_in_standard_function12109 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_XMLTABLE_VK_in_standard_function12123 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_xml_namespaces_clause_in_standard_function12125 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_standard_function12128 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000100000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
    public static final BitSet FOLLOW_xml_passing_clause_in_standard_function12130 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
    public static final BitSet FOLLOW_xml_table_column_in_standard_function12133 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
    public static final BitSet FOLLOW_XMLELEMENT_VK_in_standard_function12147 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_standard_function12187 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
    public static final BitSet FOLLOW_xml_attributes_clause_in_standard_function12201 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_standard_function12205 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000002000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_alias_in_standard_function12207 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_XMLPI_VK_in_standard_function12232 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_NAME_VK_in_standard_function12255 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_char_set_name_in_standard_function12257 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_standard_function12260 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_EVALNAME_VK_in_standard_function12283 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_standard_function12285 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_standard_function12321 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_XMLSERIALIZE_VK_in_standard_function12344 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_standard_function12362 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_standard_function12384 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x4000000020000000L,0x0201000800000000L,0x4000000000000000L,0x0000000000100000L,0x0000000000000000L,0x0000000000000800L,0x0000000000000000L,0x0000000000000400L});
    public static final BitSet FOLLOW_type_spec_in_standard_function12386 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x4000000000000000L,0x0001000800000000L,0x0000000000000000L,0x0000000000100000L,0x0000000000000000L,0x0000000000000800L,0x0000000000000000L,0x0000000000000400L});
    public static final BitSet FOLLOW_xmlserialize_param_enconding_part_in_standard_function12405 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000800000000L,0x0000000000000000L,0x0000000000100000L,0x0000000000000000L,0x0000000000000800L,0x0000000000000000L,0x0000000000000400L});
    public static final BitSet FOLLOW_xml_param_version_part_in_standard_function12424 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000800000000L,0x0000000000000000L,0x0000000000100000L,0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_xmlserialize_param_ident_part_in_standard_function12443 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000800000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_set_in_standard_function12463 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000100000000000L});
    public static final BitSet FOLLOW_DEFAULTS_VK_in_standard_function12469 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_OVER_VK_in_over_clause12502 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_query_partition_clause_in_over_clause12504 = new BitSet(new long[]{0x0000000000000008L,0x0002000000000000L});
    public static final BitSet FOLLOW_order_by_clause_in_over_clause12508 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000100000L});
    public static final BitSet FOLLOW_windowing_clause_in_over_clause12510 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_windowing_clause12535 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_SQL92_RESERVED_BETWEEN_in_windowing_clause12559 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_windowing_elements_in_windowing_clause12561 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L,0x0000000000040000L,0x0000000000000000L,0x0000000000000000L,0x0000000000002000L,0x0000000000000000L,0x0200000000000000L});
    public static final BitSet FOLLOW_windowing_elements_in_windowing_clause12563 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_windowing_elements_in_windowing_clause12583 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L,0x0000000000040000L,0x0000000000000000L,0x0000000000000000L,0x0000000000002000L,0x0000000000000000L,0x0200000000000000L});
    public static final BitSet FOLLOW_UNBOUNDED_VK_in_windowing_elements12629 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_PRECEDING_VK_in_windowing_elements12631 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CURRENT_VK_in_windowing_elements12644 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_ROW_VK_in_windowing_elements12646 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_windowing_elements12659 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_windowing_elements12665 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PLSQL_NON_RESERVED_USING_in_using_clause12687 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_using_element_in_using_clause12689 = new BitSet(new long[]{0x0000000000000088L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_ELEMENT_in_using_element12712 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_SQL92_RESERVED_IN_in_using_element12714 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L,0x0000000400000000L});
    public static final BitSet FOLLOW_OUT_VK_in_using_element12717 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_using_element12720 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000002000L});
    public static final BitSet FOLLOW_alias_in_using_element12722 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ASTERISK_in_using_element12735 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQL92_RESERVED_ORDER_in_collect_order_by_part12756 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_collect_order_by_part12758 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_WITHIN_VK_in_within_clause12780 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_order_by_clause_in_within_clause12782 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_COST_VK_in_cost_matrix_clause12804 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_PLSQL_NON_RESERVED_MODEL_in_cost_matrix_clause12823 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000040000000L});
    public static final BitSet FOLLOW_AUTO_VK_in_cost_matrix_clause12825 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_cost_class_name_in_cost_matrix_clause12845 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L,0x0000000000000400L});
    public static final BitSet FOLLOW_expression_list_in_cost_matrix_clause12848 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PASSING_VK_in_xml_passing_clause12893 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_VALUE_VK_in_xml_passing_clause12895 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_xml_passing_clause12898 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000002000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_alias_in_xml_passing_clause12900 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_xml_passing_clause12904 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000002000L});
    public static final BitSet FOLLOW_alias_in_xml_passing_clause12906 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_XMLATTRIBUTES_VK_in_xml_attributes_clause12931 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_xml_multiuse_expression_element_in_xml_attributes_clause12983 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
    public static final BitSet FOLLOW_XMLNAMESPACES_VK_in_xml_namespaces_clause13015 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_xml_namespaces_clause13030 = new BitSet(new long[]{0x0000000000000008L,0x0000000000100000L,0x0000000000002000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_alias_in_xml_namespaces_clause13032 = new BitSet(new long[]{0x0000000000000008L,0x0000000000100000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_xml_general_default_part_in_xml_namespaces_clause13037 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_XML_COLUMN_in_xml_table_column13069 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_xml_column_name_in_xml_table_column13071 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L,0x0200000000000000L,0x4000000000000000L,0x0000000200000000L});
    public static final BitSet FOLLOW_ORDINALITY_VK_in_xml_table_column13074 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_type_spec_in_xml_table_column13076 = new BitSet(new long[]{0x0000000000000008L,0x0000000000100000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_xml_table_column13078 = new BitSet(new long[]{0x0000000000000008L,0x0000000000100000L});
    public static final BitSet FOLLOW_xml_general_default_part_in_xml_table_column13081 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_DEFAULT_in_xml_general_default_part13106 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_xml_general_default_part13108 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_XML_ELEMENT_in_xml_multiuse_expression_element13130 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_xml_multiuse_expression_element13132 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000040000000L});
    public static final BitSet FOLLOW_xml_alias_in_xml_multiuse_expression_element13134 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_XML_ALIAS_in_xml_alias13157 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_ID_in_xml_alias13159 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_XML_ALIAS_in_xml_alias13172 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_EVALNAME_VK_in_xml_alias13175 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_xml_alias13177 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_VERSION_VK_in_xml_param_version_part13200 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_NO_VK_in_xml_param_version_part13203 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_VALUE_VK_in_xml_param_version_part13205 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_expression_in_xml_param_version_part13207 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_STANDALONE_VK_in_xmlroot_param_standalone_part13230 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_YES_VK_in_xmlroot_param_standalone_part13233 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_NO_VK_in_xmlroot_param_standalone_part13235 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_VALUE_VK_in_xmlroot_param_standalone_part13237 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ENCODING_VK_in_xmlserialize_param_enconding_part13261 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_xmlserialize_param_enconding_part13263 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_NO_VK_in_xmlserialize_param_ident_part13284 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
    public static final BitSet FOLLOW_INDENT_VK_in_xmlserialize_param_ident_part13286 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_INDENT_VK_in_xmlserialize_param_ident_part13298 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_xmlserialize_param_ident_part13300 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_partition_extension_clause13327 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_list_in_partition_extension_clause13333 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ALIAS_in_alias13355 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_alias13357 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_alias13360 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_WHERE_in_where_clause13382 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_where_clause13384 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SQL92_RESERVED_INTO_in_into_clause13406 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_variable_name_in_into_clause13408 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
    public static final BitSet FOLLOW_BULK_VK_in_into_clause13423 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_variable_name_in_into_clause13425 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
    public static final BitSet FOLLOW_XML_COLUMN_NAME_in_xml_column_name13453 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_xml_column_name13455 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_xml_column_name13458 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_COST_CLASS_NAME_in_cost_class_name13480 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_cost_class_name13482 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_cost_class_name13485 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ATTRIBUTE_NAME_in_attribute_name13507 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_attribute_name13509 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_attribute_name13512 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SAVEPOINT_NAME_in_savepoint_name13534 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_savepoint_name13536 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_savepoint_name13539 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ROLLBACK_SEGMENT_NAME_in_rollback_segment_name13561 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_rollback_segment_name13563 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_rollback_segment_name13566 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_TABLE_VAR_NAME_in_table_var_name13589 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_table_var_name13591 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_table_var_name13594 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SCHEMA_NAME_in_schema_name13616 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_schema_name13618 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_schema_name13621 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ROUTINE_NAME_in_routine_name13643 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_routine_name13645 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_routine_name13648 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L,0x0000000080000000L});
    public static final BitSet FOLLOW_link_name_in_routine_name13651 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PACKAGE_NAME_in_package_name13674 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_package_name13676 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_package_name13679 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IMPLEMENTATION_TYPE_NAME_in_implementation_type_name13701 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_implementation_type_name13703 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_implementation_type_name13706 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_PARAMETER_NAME_in_parameter_name13729 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_parameter_name13731 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_parameter_name13734 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_REFERENCE_MODEL_NAME_in_reference_model_name13756 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_reference_model_name13758 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_reference_model_name13761 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MAIN_MODEL_NAME_in_main_model_name13783 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_main_model_name13785 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_main_model_name13788 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_QUERY_NAME_in_query_name13810 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_query_name13812 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_query_name13815 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CONSTRAINT_NAME_in_constraint_name13837 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_constraint_name13839 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_constraint_name13842 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L,0x0000000080000000L});
    public static final BitSet FOLLOW_link_name_in_constraint_name13845 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_LABEL_NAME_in_label_name13868 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_ID_in_label_name13870 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_TYPE_NAME_in_type_name13892 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_ID_in_type_name13894 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_SEQUENCE_NAME_in_sequence_name13917 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_ID_in_sequence_name13919 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_EXCEPTION_NAME_in_exception_name13942 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_exception_name13944 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_exception_name13947 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_FUNCTION_NAME_in_function_name13970 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_function_name13972 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_function_name13975 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_PROCEDURE_NAME_in_procedure_name13998 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_procedure_name14000 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_procedure_name14003 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_TRIGGER_NAME_in_trigger_name14026 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_trigger_name14028 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_trigger_name14031 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_HOSTED_VARIABLE_NAME_in_variable_name14054 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_variable_name14056 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_variable_name14059 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_VARIABLE_NAME_in_variable_name14073 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_variable_name14075 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_variable_name14078 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_INDEX_NAME_in_index_name14101 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_index_name14103 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_index_name14106 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CURSOR_NAME_in_cursor_name14128 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_cursor_name14130 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_cursor_name14133 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_RECORD_NAME_in_record_name14155 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_record_name14157 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_record_name14160 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_COLLECTION_NAME_in_collection_name14182 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_collection_name14184 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_collection_name14187 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_LINK_NAME_in_link_name14210 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_link_name14212 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_link_name14215 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_COLUMN_NAME_in_column_name14237 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_column_name14239 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_column_name14242 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_TABLEVIEW_NAME_in_tableview_name14265 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_tableview_name14267 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_tableview_name14270 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L,0x0000000080000000L,0x0000080000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000040000000L});
    public static final BitSet FOLLOW_link_name_in_tableview_name14273 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000080000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000040000000L});
    public static final BitSet FOLLOW_partition_extension_clause_in_tableview_name14276 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CHAR_SET_NAME_in_char_set_name14299 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_ID_in_char_set_name14301 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ARGUMENTS_in_function_argument14328 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_argument_in_function_argument14330 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000040000L});
    public static final BitSet FOLLOW_ARGUMENT_in_argument14353 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_argument14355 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_parameter_name_in_argument14357 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CUSTOM_TYPE_in_type_spec14381 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_name_in_type_spec14383 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x000C000000000000L,0x0000000010000000L});
    public static final BitSet FOLLOW_REF_VK_in_type_spec14385 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x000C000000000000L});
    public static final BitSet FOLLOW_NATIVE_DATATYPE_in_type_spec14406 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_native_datatype_element_in_type_spec14408 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000004000L,0x0000000000000000L,0x0000800000000000L});
    public static final BitSet FOLLOW_type_precision_in_type_spec14410 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
    public static final BitSet FOLLOW_TIME_VK_in_type_spec14414 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
    public static final BitSet FOLLOW_LOCAL_VK_in_type_spec14416 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_INTERVAL_DATATYPE_in_type_spec14432 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_type_spec14434 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0800000000000000L,0x0000000000000000L,0x0800000000000000L});
    public static final BitSet FOLLOW_set_in_type_spec14440 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_expression_in_type_spec14446 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000000400000000L});
    public static final BitSet FOLLOW_PRECISION_in_type_precision14469 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_constant_in_type_precision14471 = new BitSet(new long[]{0x0000000000080428L,0x2000100020100000L,0x0080100000000080L,0x0000001000000000L,0x0000000000000000L,0x0008080000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L,0x0000800000000000L});
    public static final BitSet FOLLOW_constant_in_type_precision14473 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0080100000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
    public static final BitSet FOLLOW_TIME_VK_in_type_precision14484 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
    public static final BitSet FOLLOW_LOCAL_VK_in_type_precision14486 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_BINARY_INTEGER_VK_in_native_datatype_element14510 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PLS_INTEGER_VK_in_native_datatype_element14521 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NATURAL_VK_in_native_datatype_element14532 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_BINARY_FLOAT_VK_in_native_datatype_element14543 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_BINARY_DOUBLE_VK_in_native_datatype_element14554 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NATURALN_VK_in_native_datatype_element14565 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_POSITIVE_VK_in_native_datatype_element14576 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_POSITIVEN_VK_in_native_datatype_element14587 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SIGNTYPE_VK_in_native_datatype_element14598 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SIMPLE_INTEGER_VK_in_native_datatype_element14609 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NVARCHAR2_VK_in_native_datatype_element14620 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DEC_VK_in_native_datatype_element14631 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_INTEGER_VK_in_native_datatype_element14642 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_INT_VK_in_native_datatype_element14653 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NUMERIC_VK_in_native_datatype_element14664 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SMALLINT_VK_in_native_datatype_element14675 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NUMBER_VK_in_native_datatype_element14686 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DECIMAL_VK_in_native_datatype_element14697 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DOUBLE_VK_in_native_datatype_element14709 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000008000L});
    public static final BitSet FOLLOW_PRECISION_VK_in_native_datatype_element14711 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FLOAT_VK_in_native_datatype_element14723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_REAL_VK_in_native_datatype_element14734 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NCHAR_VK_in_native_datatype_element14745 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_LONG_VK_in_native_datatype_element14756 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_RAW_VK_in_native_datatype_element14758 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_CHAR_VK_in_native_datatype_element14770 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_CHARACTER_VK_in_native_datatype_element14783 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_VARCHAR2_VK_in_native_datatype_element14795 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_VARCHAR_VK_in_native_datatype_element14806 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_STRING_VK_in_native_datatype_element14817 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RAW_VK_in_native_datatype_element14828 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_BOOLEAN_VK_in_native_datatype_element14839 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DATE_VK_in_native_datatype_element14850 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ROWID_VK_in_native_datatype_element14861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_UROWID_VK_in_native_datatype_element14872 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_YEAR_VK_in_native_datatype_element14883 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_MONTH_VK_in_native_datatype_element14894 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DAY_VK_in_native_datatype_element14905 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_HOUR_VK_in_native_datatype_element14916 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_MINUTE_VK_in_native_datatype_element14927 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SECOND_VK_in_native_datatype_element14938 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TIMEZONE_HOUR_VK_in_native_datatype_element14949 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TIMEZONE_MINUTE_VK_in_native_datatype_element14960 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TIMEZONE_REGION_VK_in_native_datatype_element14971 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TIMEZONE_ABBR_VK_in_native_datatype_element14982 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TIMESTAMP_VK_in_native_datatype_element14993 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TIMESTAMP_UNCONSTRAINED_VK_in_native_datatype_element15004 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TIMESTAMP_TZ_UNCONSTRAINED_VK_in_native_datatype_element15015 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TIMESTAMP_LTZ_UNCONSTRAINED_VK_in_native_datatype_element15026 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_YMINTERVAL_UNCONSTRAINED_VK_in_native_datatype_element15037 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DSINTERVAL_UNCONSTRAINED_VK_in_native_datatype_element15048 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_BFILE_VK_in_native_datatype_element15059 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_BLOB_VK_in_native_datatype_element15070 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_CLOB_VK_in_native_datatype_element15081 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NCLOB_VK_in_native_datatype_element15092 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_MLSLABEL_VK_in_native_datatype_element15103 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_CASCATED_ELEMENT_in_general_element15124 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_general_element_in_general_element15126 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0002000000008000L,0x0000000000000000L,0x000000A000000000L,0x0000000000000000L,0x0000000000000000L,0x0000200000000000L});
    public static final BitSet FOLLOW_HOSTED_VARIABLE_ROUTINE_CALL_in_general_element15140 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_routine_name_in_general_element15142 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
    public static final BitSet FOLLOW_function_argument_in_general_element15144 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_HOSTED_VARIABLE_in_general_element15157 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_general_element15159 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_general_element15162 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ROUTINE_CALL_in_general_element15176 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_routine_name_in_general_element15178 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
    public static final BitSet FOLLOW_function_argument_in_general_element15180 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ANY_ELEMENT_in_general_element15193 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_char_set_name_in_general_element15195 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_general_element15198 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_char_set_name_in_id15368 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000020000000000L});
    public static final BitSet FOLLOW_ID_in_id15371 = new BitSet(new long[]{0x0000000000000002L});

}